首页 > 解决方案 > CSV数据的每小时平均数据

问题描述

我的数据是 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

日期与实际数据表相差甚远。所以请帮我调试它。

标签: pythonpandascsv

解决方案


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


推荐阅读