Как суммировать данные за определенные периоды времени и даты в Пандах? - PullRequest
0 голосов
/ 14 марта 2019

У меня есть фрейм данных со значениями более 1 мил.Задача состоит в том, чтобы суммировать эти значения в диапазоне каждые 5 минут.Другими словами, от 0 до первых 5 минут, затем 10 минут, затем 15 и так далее.Но есть более 30-33 дней.Это мои данные:

                                    Size
                        DateTime                              
2018-10-19 04:14:01.015000+00:00     2
2018-10-19 04:14:01.546000+00:00     1
2018-10-19 04:15:01.290000+00:00     1
2018-10-19 04:15:01.291000+00:00    10
2018-10-19 04:15:01.821000+00:00     1
2018-10-19 04:15:01.821000+00:00     1
2018-10-19 04:15:02.352000+00:00     1
2018-10-19 04:15:02.352000+00:00     1
2018-10-19 04:15:02.883000+00:00     1
2018-10-19 04:15:02.884000+00:00     1
2018-10-19 04:15:03.413000+00:00     1
2018-10-19 04:15:03.414000+00:00     1
2018-10-19 04:15:03.943000+00:00     1
2018-10-19 04:15:03.943000+00:00     1
2018-10-19 04:15:04.474000+00:00     1
2018-10-19 04:15:04.474000+00:00     1
2018-10-19 04:15:05.003000+00:00     1
2018-10-19 04:15:05.003000+00:00     1
2018-10-19 04:15:05.334000+00:00     1
2018-10-19 04:15:05.336000+00:00     1
...
2018-11-26 19:59:33.928000+00:00     1
2018-11-26 19:59:37.221000+00:00     1
2018-11-26 19:59:41.808000+00:00     1
2018-11-26 19:59:42.338000+00:00     1
2018-11-26 19:59:45.520000+00:00     1
2018-11-26 19:59:52.059000+00:00     1
2018-11-26 19:59:52.589000+00:00     1
2018-11-26 19:59:54.714000+00:00     1
2018-11-26 19:59:55.244000+00:00     1
2018-11-26 19:59:56.297000+00:00     1
2018-11-26 19:59:57.888000+00:00     1
2018-11-26 19:59:59.008000+00:00     1
2018-11-26 20:00:00.071000+00:00     1
2018-11-26 20:51:04.606000+00:00     1
2018-11-26 20:51:57.307000+00:00     1

Как видите, там довольно много строк.У меня есть некоторые идеи о том, как это сделать, но я застрял.Ну, диапазон данных может быть установлен как:

data[data.index.minute % 5 == 0]

Но как я могу суммировать значения до этого и в следующем диапазоне?

Ответы [ 2 ]

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

Используйте pd.Grouper() здесь с freq=5min

note Я использовал только верхние строки данных вашего примера, выше ..

df_sum = df.groupby(pd.Grouper(key='DateTime', freq='5min', axis=1)).Size.sum().reset_index()

print(df_sum)

             DateTime  Size
0 2018-10-19 04:10:00     3
1 2018-10-19 04:15:00    27
1 голос
/ 14 марта 2019

С resample:

data.resample('5min')['Size'].sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...