Используйте, если 3 уровня MultiIndex
используйте floor
или date
и совокупность sum
:
dates = df.index.get_level_values('DATETIME').floor('D')
Или:
dates = pd.Series(df.index.get_level_values('DATETIME').date, name='DATETIME', index=df.index)
Если столбец DATETIME
:
dates = df['DATETIME'.dt.floor('D')
dates = df['DATETIME'].dt.date
df = df.groupby(['UNIT','C/A', dates]).sum().reset_index()
print (df)
UNIT C/A DATETIME TOTAL COUNTs
0 R248 HOO7 2018-03-03 1066.0
1 R248 HOO7 2018-03-04 1946.0
2 R248 HOO7 2018-03-05 3688.0
Решение с resample
:
df = df.set_index('DATETIME').groupby(['UNIT','C/A']).resample('D').sum().reset_index()
Или:
df = df.groupby(['UNIT','C/A', pd.Grouper(key='DATETIME', freq='D')]).sum().reset_index()
print (df)
UNIT C/A DATETIME TOTAL COUNTs
0 R248 HOO7 2018-03-03 1066.0
1 R248 HOO7 2018-03-04 1946.0
2 R248 HOO7 2018-03-05 3688.0