我刚开始学习大熊猫并有疑问。 首先,我想问一下。
我有数据框,就像下面一样。
Date Open High Low Close
2015-11-02 711.059998 721.619995 705.849976 721.109985
2015-11-03 718.859985 724.650024 714.719971 722.159973
2015-11-04 722.000000 733.099976 721.900024 728.109985
2015-11-05 729.469971 739.479980 729.469971 731.250000
2015-11-06 731.500000 735.409973 727.010010 733.760010
我知道
df["Close"].pct_change()
将百分比从关闭更改为关闭。
但是, 我想添加一个新列“CloseToOpen”,这是“昨天接近今天开放”的百分比变化。
因此,它是“开放(第0天)/关闭(第-1天)-1”。 当然,第一行应该是“NaN”或Zero,因为没有“前一天关闭”。
如何用python pandas代码制作呢?
谢谢你们!
这就是我想要的。
Date Open High Low Close CloseToOpen
2015-11-02 711.059998 721.619995 705.849976 721.109985 0.000000
2015-11-03 718.859985 724.650024 714.719971 722.159973 -0.003120
2015-11-04 722.000000 733.099976 721.900024 728.109985 -0.000222
2015-11-05 729.469971 739.479980 729.469971 731.250000 0.001868
2015-11-06 731.500000 735.409973 727.010010 733.760010 0.000342
答案 0 :(得分:4)
使用:
df['CloseToOpen'] = df['Open'].sub(df['Close'].shift()).div(df['Close'] - 1).fillna(0)
print (df)
Open High Low Close CloseToOpen
Date
2015-11-02 711.059998 721.619995 705.849976 721.109985 0.000000
2015-11-03 718.859985 724.650024 714.719971 722.159973 -0.003120
2015-11-04 722.000000 733.099976 721.900024 728.109985 -0.000220
2015-11-05 729.469971 739.479980 729.469971 731.250000 0.001862
2015-11-06 731.500000 735.409973 727.010010 733.760010 0.000341
答案 1 :(得分:0)
您还可以使用标准操作数来实现您想要的效果:
df['CloseToOpen'] = (df['Open'] / df['Close'].shift(1) - 1).fillna(0)