【发布时间】:2018-06-28 12:28:12
【问题描述】:
这个标题可能有点令人困惑,但我会尝试解释我想要做什么。我有股票的 OHLC csv。我正在尝试添加一个名为 L 和 H 的新列。这里代表什么。我需要检查最近 n 天(比如 5 天)的最小开盘价。我需要将它的低价设置为 L,将高价设置为 H。
这是我的数据框
Date Open High Low
5303 2018-06-11 1681.51 1694.24 1680.59
5304 2018-06-12 1693.00 1699.51 1691.52
5305 2018-06-13 1702.81 1713.75 1700.12
5306 2018-06-14 1713.48 1724.80 1708.87
5307 2018-06-15 1714.00 1720.87 1708.52
5308 2018-06-18 1706.26 1726.74 1702.56
5309 2018-06-19 1709.04 1736.11 1700.39
5310 2018-06-20 1742.50 1762.93 1741.36
5311 2018-06-21 1760.00 1763.10 1717.56
5312 2018-06-22 1742.62 1743.00 1711.90
我尝试了以下方法,但它只返回最小值而不是我可以抓住高低的系列
df['Open'].rolling(5).min()
在这里,我试图获取 rolling() 的索引或整个 Dataframe 系列来获取此滚动的 Hig 和 Low 值。我希望我能解释一下。
编辑:添加预期输出
假设索引 5308 是最后 5 行中最小的 Open。所以 L 将等于 5308 的 Low 列,H 将等于 5308 的 High 列的其余数据
Date Open High Low H L
5309 2018-06-19 1709.04 1736.11 1700.39 1726.74 1702.56
5310 2018-06-20 1742.50 1762.93 1741.36 1726.74 1702.56
5311 2018-06-21 1760.00 1763.10 1717.56 1726.74 1702.56
5312 2018-06-22 1742.62 1743.00 1711.90 1726.74 1702.56
【问题讨论】:
-
请提供您的预期结果以尽量减少混淆。
-
我猜你需要在
df.rolling(5)上使用apply你可以检查这个example -
在索引 5309 处,前 5 行索引 5305 是最低开口,请参阅下面的解决方案。