Pandas 将 5 分钟的数据重新采样为每小时平均值:日期问题
Pandas Resample 5 mins data to Hourly average : Date issue
我正在尝试将时间序列数据从 5 分钟频率重新采样为每小时平均值。
df = pd.read_csv("my_data.csv", index_col=False, usecols=['A','B','C'])
输出:
A B C
0 16-01-21 0:00 95.75 0.0
1 16-01-21 0:05 90.10 0.0
2 16-01-21 0:10 86.26 0.0
3 16-01-21 0:15 92.72 0.0
4 16-01-21 0:20 81.54 0.0
df.A= pd.to_datetime(df.A)
输出:
A B C
0 2021-01-16 00:00:00 95.75 0.0
1 2021-01-16 00:05:00 90.10 0.0
2 2021-01-16 00:10:00 86.26 0.0
3 2021-01-16 00:15:00 92.72 0.0
4 2021-01-16 00:20:00 81.54 0.0
现在我将时间戳列设置为索引,
df.set_index('A', inplace=True)
当我尝试使用
重新采样时
df2 = df.resample('H').mean()
我明白了,
B C
A
2021-01-02 00:00:00 79.970278 0.0
2021-01-02 01:00:00 77.951667 0.0
2021-01-02 02:00:00 77.610556 0.0
2021-01-02 03:00:00 80.800000 0.0
2021-01-02 04:00:00 84.305000 0.0
期待这种具有每小时平均值的时间戳,
A B C
2021-01-16 00:00:00 79.970278 0.0
2021-01-16 01:00:00 77.951667 0.0
2021-01-16 02:00:00 77.610556 0.0
2021-01-16 03:00:00 80.800000 0.0
2021-01-16 04:00:00 84.305000 0.0
我不确定我在哪里犯了错误。帮帮我。
我认为这里的问题是一些日期时间被错误地转换了:
#default is month first in df.A= pd.to_datetime(df.A)
01-02-21 -> 2021-01-02
可能的解决方案:
df.A= pd.to_datetime(df.A, dayfirst=True)
或者:
df = pd.read_csv("my_data.csv",
index_col=False,
usecols=['A','B','C'],
parse_dates=['A'],
dayfirst=True)
我正在尝试将时间序列数据从 5 分钟频率重新采样为每小时平均值。
df = pd.read_csv("my_data.csv", index_col=False, usecols=['A','B','C'])
输出:
A B C
0 16-01-21 0:00 95.75 0.0
1 16-01-21 0:05 90.10 0.0
2 16-01-21 0:10 86.26 0.0
3 16-01-21 0:15 92.72 0.0
4 16-01-21 0:20 81.54 0.0
df.A= pd.to_datetime(df.A)
输出:
A B C
0 2021-01-16 00:00:00 95.75 0.0
1 2021-01-16 00:05:00 90.10 0.0
2 2021-01-16 00:10:00 86.26 0.0
3 2021-01-16 00:15:00 92.72 0.0
4 2021-01-16 00:20:00 81.54 0.0
现在我将时间戳列设置为索引,
df.set_index('A', inplace=True)
当我尝试使用
重新采样时df2 = df.resample('H').mean()
我明白了,
B C
A
2021-01-02 00:00:00 79.970278 0.0
2021-01-02 01:00:00 77.951667 0.0
2021-01-02 02:00:00 77.610556 0.0
2021-01-02 03:00:00 80.800000 0.0
2021-01-02 04:00:00 84.305000 0.0
期待这种具有每小时平均值的时间戳,
A B C
2021-01-16 00:00:00 79.970278 0.0
2021-01-16 01:00:00 77.951667 0.0
2021-01-16 02:00:00 77.610556 0.0
2021-01-16 03:00:00 80.800000 0.0
2021-01-16 04:00:00 84.305000 0.0
我不确定我在哪里犯了错误。帮帮我。
我认为这里的问题是一些日期时间被错误地转换了:
#default is month first in df.A= pd.to_datetime(df.A)
01-02-21 -> 2021-01-02
可能的解决方案:
df.A= pd.to_datetime(df.A, dayfirst=True)
或者:
df = pd.read_csv("my_data.csv",
index_col=False,
usecols=['A','B','C'],
parse_dates=['A'],
dayfirst=True)