为了账号安全,请及时绑定邮箱和手机立即绑定

使用正向数据对时间序列熊猫进行重采样

使用正向数据对时间序列熊猫进行重采样

潇湘沐 2023-06-20 15:38:11
我的 30 分钟 df 如下所示:                         open      high      low     close    volumet2020-08-24 09:30:00  514.7900  515.1400  502.240  507.3700  121233882020-08-24 10:00:00  507.3200  513.9800  500.000  502.8899   66524962020-08-24 10:30:00  502.8190  503.7700  495.745  496.4879   59254172020-08-24 11:00:00  496.7865  504.4000  495.750  501.3500   44603892020-08-24 11:30:00  501.3400  508.6300  501.250  508.0800   37432612020-08-24 12:00:00  508.1100  514.7809  506.550  507.7000   34158712020-08-24 12:30:00  507.7000  507.9000  504.240  504.8050   28647292020-08-24 13:00:00  504.7250  508.0000  504.000  505.1700   23740892020-08-24 13:30:00  505.1707  506.7220  503.120  506.0150   22079642020-08-24 14:00:00  506.0700  507.0800  503.670  504.1742   22275752020-08-24 14:30:00  504.1800  514.6800  501.100  501.7300   26760252020-08-24 15:00:00  501.7100  503.4200  498.620  503.2265   39719552020-08-24 15:30:00  503.2330  504.5150  501.546  503.7900   4239235我对每小时数据使用重采样方法。以及用于查找开盘价和收盘价、高价和低价以及交易量的聚合。df = df.resample('H', loffset='30Min').agg({'open': 'first', 'high': 'max', 'low': 'min', 'close': 'last', 'volume': 'sum'})给我:                         open      high      low     close    volumet2020-08-24 09:30:00  512.7500  515.9800  502.240  507.3700  126287152020-08-24 10:30:00  507.3200  513.9800  495.745  496.4879  125779132020-08-24 11:30:00  496.7865  508.6300  495.750  508.0800   82036502020-08-24 12:30:00  508.1100  514.7809  504.240  504.8050   62806002020-08-24 13:30:00  504.7250  508.0000  503.120  506.0150   45820532020-08-24 14:30:00  506.0700  514.6800  501.100  501.7300   49036002020-08-24 15:30:00  501.7100  504.5150  498.620  503.7900   8211190df.resample 正在获取 10:00 和 10:30 数据并将该行创建为 10:30 数据。对于前新生成的行:2020-08-24 10:30:00 507.3200 513.9800 495.745 496.4879 12577913507.32开盘价为2020-08-24 10:00:00的价格。应该像下图一样匹配所需的 df 应如下所示:除了 15:30:00 数据外,所有 2 次合并都可见。任何伪代码都会有所帮助,谢谢
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

您应该offset在方法中使用参数pd.resample而不是loffset:


df2 = df.resample('1H', offset='30Min').agg({'open': 'first', 

                                       'high': 'max', 

                                       'low': 'min', 

                                       'close': 'last',

                                       'volume': 'sum'})

顺便说一句,loffset自 1.1.0 版以来已弃用。可能需要更新熊猫。


结果df2:


                         open      high      low     close    volume

t                                                                   

2020-08-24 09:30:00  514.7900  515.1400  500.000  502.8899  18775884

2020-08-24 10:30:00  502.8190  504.4000  495.745  501.3500  10385806

2020-08-24 11:30:00  501.3400  514.7809  501.250  507.7000   7159132

2020-08-24 12:30:00  507.7000  508.0000  504.000  505.1700   5238818

2020-08-24 13:30:00  505.1707  507.0800  503.120  504.1742   4435539

2020-08-24 14:30:00  504.1800  514.6800  498.620  503.2265   6647980

2020-08-24 15:30:00  503.2330  504.5150  501.546  503.7900   4239235


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信