我有一个Stock CSV,我想添加一个百分比差异的列。
例如:
原始csv:
Date; Price;
Jan; 60.1;
Feb; 59.4;
Mar; 65.9;
我想要创建一个新的pandas DataFrame列,其中包括%的更改,例如:
Date; Price; Change %;
Jan; 60.1;1.18;
Feb; 59.4;-9.86;
Mar; 65.9;;
在其他语言中,我通常通过使用FOR索引来选择所需行的FOR循环对数据进行迭代来实现。类似于“ Change [i] =((Price [i] / Price [i-1])-1)* 100” 但是我的问题是; 有什么方法可以更简单,更优化的方式进行操作?像R中的Apply()函数一样?
问候!
答案 0 :(得分:4)
Pandas具有一个DataFrame方法,该方法可以做到这一点:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pct_change.html(如果需要,只需乘以100)。
或者,您可以只使用DataFrame.shift()并执行以下操作:
df['Change_pct'] = df['Price']/df['Price'].shift(1)*100