我有解决此问题的方法,但希望在语法效率方面有所帮助。我是在SAS中写的:
data lag;
set nflx;
lag_close = lag(close);
delta = (close-lag_close)/lag_close;
drop lag_close;
run;
用python写这个,我想到了:
s1 = nflx.iloc[:,1]
s2 = s1.rename('Close2')
nflx2 = pd.concat([nflx,s2],axis=1)
Current = nflx2['Close']
Previous = nflx2['Close2']
Delta = (Current-Previous)/Previous
Delta = Delta.rename('Delta')
nflx3 = pd.concat([nflx2,Delta],axis=1)
nflx是具有两列的数据集,第0列是日期,第1列是收盘价,这是股票的收盘价。我的目标是获取列增量,即当前价格与之前价格之间的变化。两种代码都得到相同的结果,但我希望在简化python代码方面获得帮助。 nflx是从csv文件导入的pandas DataFrame。
我看过几个类似主题的话题,但没有任何帮助。
先谢谢您。
答案 0 :(得分:0)
我刚刚看到了这个答案,我去测试了它,它的效果很好,比我原来的解决方案好得多。当我回来标记它正确时,答案就消失了。感谢您的帮助。
这是答案:
nflx ['Delta'] = nflx.Close.pct_change()