Как агрегировать значения по времени в питоне

1

Я хотел бы суммировать значения по времени.
временная эпоха - 10 секунд, и я хочу сделать это 1 минута.

Приводятся следующие данные.

       Date       Time      X
0   2017-10-15  12:50:00    10
1   2017-10-15  12:50:10    20
2   2017-10-15  12:50:20    30
3   2017-10-15  12:50:30    20
4   2017-10-15  12:50:40    10
5   2017-10-15  12:50:50    10

и я хочу сделать это так.

       Date       Time      X
0   2017-10-15  12:50:00    100
1   2017-10-15  12:51:00    300

Я прочитал этот файл с пандами.
поэтому тип переменной Time - pandas.core.series.Series.
И я попытался использовать df.resample(), но это не сработало.
Что я могу здесь сделать?
Спасибо за вашу помощь.

  • 0
    Для форматирования семплов используйте 4 пробела;)
Теги:
pandas

1 ответ

0
Лучший ответ

DatetimeIndex вы можете создать DatetimeIndex:

df.index = pd.to_datetime(df.pop('Date')) + pd.to_timedelta(df.pop('Time'))
print (df)
                      X
2017-10-15 12:50:00  10
2017-10-15 12:50:10  20
2017-10-15 12:50:20  30
2017-10-15 12:50:30  20
2017-10-15 12:50:40  10
2017-10-15 12:50:50  10

А затем работая с resample очень приятно:

df1 = df.resample('1T').sum()
print (df1)
                       X
2017-10-15 12:50:00  100

Для столбцов из DatetimeIndex используйте:

df1.index = pd.MultiIndex.from_arrays([df1.index.date, df1.index.time], names=('Date','Time'))

df1 = df1.reset_index()
print (df1)
        Date      Time    X
0 2017-10-15  12:50:00  100
  • 0
    Большое спасибо. Что если бы я хотел оставить переменные Date, Time отдельно, как это было ?? Как я должен сделать ??
  • 0
    @DosanHwang - Проверьте отредактированный ответ.
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню