如何在python中按时间汇总值

时间:2018-08-03 05:51:07

标签: python pandas

我想按时间对值求和。
时间是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

我用熊猫看了这个文件。
因此时间变量的类型为 pandas.core.series.Series
而且我尝试使用df.resample(),但没有用。
我该怎么办?
感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以先创建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