我最近刚刚发现了 pandas 和 python。我已经阅读了 Wes 的书,此外,我还反复浏览了 SO 的 pandas 标记问题,以收集这个问题的答案。所以我尝试过......不幸的是,我微薄的编程智慧正在闪耀;)
这是我正在尝试做的事情:
我有盘中外汇数据(每小时),我正在尝试对其进行一些非常简单的分析。我正在寻找测试价格测试每日开盘价并拒绝或通过它的频率。
这对我来说似乎很简单......我只是迷失了将所有组件组合在一起以获得最终的完整解决方案。
在伪代码中,这是我想要实现的目标:
- 通过 read_csv 读取数据
- 计算每个每日开放水平(使用 at_time?)
- 对于所有每小时蜡烛
- 测试蜡烛低点是否低于每日开盘价
- 测试蜡烛的收盘价是否高于每日开盘价
如果有人能指出我正确的方向,我将不胜感激。我已经到了要放弃这个的地步了。我觉得答案应该很简单,但我现在迷路了
这是我一直在使用的数据:
data = pd.read_csv('data/GBPUSD60.csv',
names=['Date','Time','Open','High','Low','Close','Volume'],
parse_dates={'Timestamp': ['Date', 'Time']},
index_col=['Timestamp'])
# Get rid of the volume
del data['Volume']
结果DF:
Open High Low Close
Timestamp
2012-11-14 04:00:00 1.58766 1.58890 1.58749 1.58877
2012-11-14 05:00:00 1.58874 1.58887 1.58819 1.58849
2012-11-14 06:00:00 1.58849 1.58921 1.58831 1.58890
2012-11-14 07:00:00 1.58890 1.58895 1.58811 1.58876
2012-11-14 08:00:00 1.58874 1.58934 1.58841 1.58849
我假设我需要采取以下两种方式之一:
- 或者按天对数据进行分组并遍历行以测试日内蜡烛。
- 其次,我可以使用 df.apply 函数并生成一个函数来测试蜡烛
这两种方法的问题在于,我在尝试访问我需要的字段时遇到了各种各样的麻烦。