Заменить даты в dataframe на последовательную нумерацию с условием, что если дата меняется то идет следующая цифра нумерации
from ast import parse
import pandas
import openpyxl
import numpy
x=[]
data = pandas.read_csv('data.csv', sep = ';')
data_result = pandas.pivot_table(data, index=['skv','date ', 'diaphragm'])
df = data_result.reset_index()
date = list(df['date '])
for i in range(len(df['date '])):
df['date '] = df.groupby('date ')['date '].cumcount().add()
print(df)
Всем привет!
Подскажите пожалуйста, как мне дописать код так, чтобы столбец с датами пронумеровался, как на скриншоте?
Ответы (2 шт):
Автор решения: Сергей Кох
→ Ссылка
Для этих целей подойдет функция pandas.factorize1. Так как она нумерует уникальные значения с 0, то добавляем единицу и перезаписываем столбец.
import pandas as pd
df = pd.read_csv('data.csv', sep = ';')
codes, uniques = pd.factorize(df['date'])
df['date'] = codes + 1
Автор решения: strawdog
→ Ссылка
Можно воспользоваться группировкой:
df["date"] = df.groupby("date").ngroup()+1
