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

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

timestamp               day hour min rainfall_rate           
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 

Я хочу объединить временные метки так, чтобы я мог получить объединенную rainfall_rate для каждого месяца, т.е. я хочу использовать group-by, чтобы объединить их на основе даты, а также построить их с осью в качестве метки времени для дальнейшего анализа. Как я могу сделать это, используя pandas?

Я использовал -

daily_groups = rainfall_df.groupby(rainfall_df.index.date) затем

daily_groups.get_group(pd.Timestamp(2010,1,1))['rainfall_rate'].sum() но, конечно, я не мог построить их, потому что они разной формы.

1 Ответ

1 голос
/ 08 февраля 2020

Используйте pd.Grouper с freq="M":

print (df.groupby(pd.Grouper(freq="M"))["rainfall_rate"].count())


#
    timestamp
2010-01-31    5
2010-02-28    0
2010-03-31    0
2010-04-30    0
2010-05-31    0
2010-06-30    0
2010-07-31    0
2010-08-31    0
2010-09-30    0
2010-10-31    0
2010-11-30    0
2010-12-31    0
...