Заменить даты в 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)

Всем привет!

Подскажите пожалуйста, как мне дописать код так, чтобы столбец с датами пронумеровался, как на скриншоте?

data


Ответы (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
→ Ссылка