Рассчитать общее количество значений в день с пандами - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть следующий фрейм данных

       UNIT  C/A   DATETIME                TOTAL COUNTs
       R248  HOO7  2018-03-03 03:00:00     139.0
                   2018-03-03 07:00:00     927.0
                   2018-03-04 11:00:00    1946.0
                   2018-03-05 07:00:00    1330.0
                   2018-03-05 11:00:00    2358.0

Я хочу рассчитать сумму «ВСЕГО СЧЕТОВ» за каждый день. Поэтому я хочу, чтобы фрейм данных выглядел следующим образом:

        UNIT  C/A   DATETIME     TOTAL COUNTs
       R248  HOO7  2018-03-03    1066
                   2018-03-04    1946
                   2018-03-05    3688

Я прочитал, что я должен установить индекс этого фрейма данных на индекс 'datetime', а затем использую .resample, но я не уверен, как это сделать.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Используйте, если 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
0 голосов
/ 30 сентября 2018

Попробуйте это:

df.groupby(df.DATETIME.dt.date)["TOTAL COUNTs"].sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...