我想按时间对值求和。
时间是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()
,但没有用。
我该怎么办?
感谢您的帮助。
答案 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