我的数据采用CSV格式,即分钟分辨率。看起来像
Timestamp value
6/10/2018 0:00 23.9
6/10/2018 0:01 19.8
6/10/2018 0:02 20.3
-------------------------
-------------------------
6/18/2018 23:59 25.9
现在,我需要此数据的每小时平均值。到目前为止,我完成的代码是
import pandas as pd
df = pd.read_csv("filename.csv")
df['DateTime'] = pd.to_datetime(df['Timestamp'])
df.index = df['DateTime']
df1 = df.resample('H').mean()
print(df1)
但是输出不正确,是
DateTime Value
2018-06-13 00:00:00 16.19
2018-06-13 01:00:00 20.80
----------------------------
----------------------------
2018-12-06 23:00:00 19.09
日期与实际数据表相距甚远。因此,请帮助我进行调试。
答案 0 :(得分:0)
pandas
无法解析您的Datetime
列,可能是因为字符串表示形式以月份开头。我认为pandas
假设它是第一天的,直到不再可能,然后才是第一个月。
您应指定格式字符串:
df['DateTime'] = pd.to_datetime(df['Timestamp'], format='%m/%d/%Y %H:%M')
关于字符串格式的约定在此页中:
https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior
答案 1 :(得分:0)
尝试
df["DateTime"] = pd.to_datetime(df['Timestamp'], format="%d/%m/%Y %H:%M")
代替这个
df['DateTime'] = pd.to_datetime(df['Timestamp'])