1 回答
TA贡献1906条经验 获得超10个赞
下一个版本的代码对我有用,由于您提供的行数很少,我只进行了 2 分钟的聚合。
我认为不起作用的原因是您的数据采用字符串格式,而不是需要日期时间列采用日期时间格式,其余部分采用浮点数格式,而不是字符串。我在代码中正确地将字符串转换为日期时间。
或者不工作的另一个原因是因为你没有这样做df.set_index('Date_Time')
,我也在我的代码中这样做了。
import io, pandas as pd, numpy as np
df = pd.read_csv(io.StringIO("""
Date_Time,Open,High,Low,Close
2014-12-30 20:51:00,2321.0,1213.0,1223.0,2334.0
2014-12-30 20:52:00,2342.0,2322.0,2332.0,2332.0
2014-12-30 20:53:00,3421.0,2322.0,2334.0,2123.0
2014-12-30 20:54:00,2312.0,2332.0,2324.0,2321.0
2014-12-30 20:55:00,2312.0,1212.0,2343.0,2323.0
"""))
df.Date_Time = pd.to_datetime(df.Date_Time)
df.set_index('Date_Time')
print(df)
df = df.resample('2min', on = 'Date_Time').agg({
'Open':'first',
'High':'max',
'Low':'min',
'Close':'last',
})
print(df)
输出是:
Date_Time Open High Low Close
0 2014-12-30 20:51:00 2321.0 1213.0 1223.0 2334.0
1 2014-12-30 20:52:00 2342.0 2322.0 2332.0 2332.0
2 2014-12-30 20:53:00 3421.0 2322.0 2334.0 2123.0
3 2014-12-30 20:54:00 2312.0 2332.0 2324.0 2321.0
4 2014-12-30 20:55:00 2312.0 1212.0 2343.0 2323.0
Open High Low Close
Date_Time
2014-12-30 20:50:00 2321.0 1213.0 1223.0 2334.0
2014-12-30 20:52:00 2342.0 2322.0 2332.0 2123.0
2014-12-30 20:54:00 2312.0 2332.0 2324.0 2323.0
添加回答
举报