迭代完整熊猫DataFrame的最佳方法

时间:2019-01-13 12:33:32

标签: python pandas dataframe iteration

我有一个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()函数一样?

问候!

1 个答案:

答案 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