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

Python- агрегация по временной метке.

Привет, у меня есть Python-фрейм данных, аналогичный приведенному ниже, в течение 24 часов с интервалом 15 минут.Я хочу сгруппировать данные с 3-х часовым окном и суммировать поле «значение».Есть предложения?

index   name     m_timestamp            value
    1   A        2019-01-27 00:30:00    10
    2   A        2019-01-27 00:45:00    20
    3   A        2019-01-27 01:00:00    30
    4   A        2019-01-27 01:15:00    40
.
.
.    

1 Ответ

0 голосов
/ 08 февраля 2019

Это должно разделить временную метку на 3 часа и вывести сумму за этот период времени.Документы на pd.Grouper

import pandas as pd

data = [{'name': 'A', 'm_timestamp': '2019-01-27 00:30:00', 'value': 10}, {'name': 'A', 'm_timestamp': '2019-01-27 00:45:00', 'value': 20}, {'name': 'A', 'm_timestamp': '2019-01-27 01:00:00', 'value': 30}, {'name': 'A', 'm_timestamp': '2019-01-27 01:15:00', 'value': 40}, {'name': 'A', 'm_timestamp': '2019-01-27 04:15:00', 'value': 100}, {'name': 'A', 'm_timestamp': '2019-01-27 19:15:00', 'value': 12}]

df = pd.DataFrame(data)
df['m_timestamp'] = pd.to_datetime(df['m_timestamp'])  # Makes sure your timestamp is in datetime format
df.groupby(pd.Grouper(key='m_timestamp', freq='180Min')).sum()

Вывод:

m_timestamp         value            
2019-01-27 00:00:00    100
2019-01-27 03:00:00    100
2019-01-27 06:00:00      0
2019-01-27 09:00:00      0
2019-01-27 12:00:00      0
2019-01-27 15:00:00      0
2019-01-27 18:00:00     12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...