Как агрегировать панды Dataframe по дням - PullRequest
1 голос
/ 11 марта 2019

У меня есть следующие панды DataFrame:

time,                value
2018-08-02 09:19:37, 2
2018-08-02 09:19:47, 3
2018-08-02 09:19:57, 6
......
2018-08-03 04:49:27, 2
2018-08-03 04:49:37, 4
2018-08-03 04:49:47, 5

Я хотел бы построить выходной фрейм данных следующим образом:

time,                value
2018-08-02 11:59:59, AVG(2+3+6+..)
2018-08-03 11:59:59, AVG(2+4+5+..)

Пожалуйста, любая помощь будет очень признательна.Большое спасибо.

Ответы [ 2 ]

1 голос
/ 11 марта 2019

Вы можете использовать Resample

>>>df['time'] = df['time'].astype('datetime64[ns]')    
>>>df.resample('D', on='time').mean()
>>>        
time         value
2018-08-02  3.666667
2018-08-03  3.666667
1 голос
/ 11 марта 2019

IIUC, использование:

m=df.groupby(df.time.dt.date).value.mean().reset_index()
m.time=pd.to_datetime(m.time.astype(str)+' 11:59:59')
print(m)

                 time     value
0 2018-08-02 11:59:59  3.666667
1 2018-08-03 11:59:59  3.666667

Примечание: Если dtypes - строки, сначала используйте приведенный ниже код перед кодом выше:

df.time=pd.to_datetime(df.time)
df.value=df.value.astype(int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...