У меня есть такой фрейм данных для панд
date,userId,classification
2018-03-29,55,Large
2018-03-30,55, small
2018-03-29,55, x-small
2018-04-20,65, Large
2018-04-29,75, x-small
Как заполнить пропущенные даты, но для каждого идентификатора пользователя в течение 60 дней? Я попробовал это с пандами, используя индексацию даты, а затем реиндексацию и заполнение, но он дал все нулевые значения всем другим полям. Я в порядке с любым решением, использующим плавающие фреймы или панды с использованием Python или Java.
Код, который я пробовал
import pandas as pd
idx = pd.date_range('02-28-2018', '04-29-2018')
df = pd.DataFrame([['Chandler Bing','55','2018-03-29',51],
['Chandler Bing','55','2018-03-29',60],
['Chandler Bing','55','2018-03-30',59],
['Harry Kane','45','2018-04-30',80],
['Harry Kane','45','2018-04-21',90]],columns=['name','accountid','timestamp','size'])
df['timestamp'] = pd.to_datetime(df['timestamp'])
df.set_index('timestamp', inplace=True)
print (df)
df= df.reindex(idx, fill_value=0)
print(df)
и ошибка, которую я получаю: 'ValueError: невозможно переиндексировать с повторяющейся оси'
Даже эта версия не работала
import pandas as pd
idx = pd.date_range('02-28-2018', '04-29-2018')
df = pd.DataFrame([['Chandler Bing','55','2018-03-29',51],
['Chandler Bing','55','2018-03-29',60],
['Chandler Bing','55','2018-03-30',59],
['Harry Kane','45','2018-04-30',80],
['Harry Kane','45','2018-04-21',90]],columns=['name','accountid','timestamp','size'])
df['timestamp'] = pd.to_datetime(df['timestamp'])
pd.DatetimeIndex(df['timestamp'])
del(df['timestamp'])
#df.set_index('timestamp', inplace=True)
print (df)
df= df.reindex(idx, fill_value=0)
print (df)
uniquaccount=df['accountid'].unique()
print(uniquaccount)