Как использовать групповые на день и месяц в pandas? - PullRequest
0 голосов
/ 24 января 2020

У меня есть данные временных рядов за полный год для каждой минуты.

timestamp               day hour min somedata           
2010-01-01 00:00:00     1   0   0       x
2010-01-01 00:01:00     1   0   1       x
2010-01-01 00:02:00     1   0   2       x
2010-01-01 00:03:00     1   0   3       x
2010-01-01 00:04:00     1   0   4       x
...                            ...
2010-12-31 23:55:00     365 23  55  
2010-12-31 23:56:00     365 23  56  
2010-12-31 23:57:00     365 23  57  
2010-12-31 23:58:00     365 23  58  
2010-12-31 23:59:00     365 23  59 

Я хочу group-by данные, основанные на дне, т.е. 2010-01-01 данные должны быть одной группой, 2010-01-02 должно быть еще до 2010-12-31.

Я использовал daily_groupby = dataframe.groupby(pd.to_datetime(dataframe.index.day, unit='D', origin=pd.Timestamp('2009-12-31'))). Это создает группу на основе дней, поэтому все jan, feb upto dec 01 day are in one group. Но я также хочу сгруппировать, используя месяц, чтобы jan, feb .. не перепутал. Я новичок в pandas.

1 Ответ

2 голосов
/ 24 января 2020

, если timestamp - индекс использования DatetimeIndex.date

df.groupby(pd.to_datetime(df.index).date)

else Series.dt.date

df.groupby(pd.to_datetime(df['timestamp']).dt.date)

Если вы не хочу группировать по году использовать:

time_index = pd.to_datetime(df.index)
df.groupby([time_index.month,time_index.day])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...