计算Pandas DataFrame中每滚动n行之间的变化百分比

时间:2019-01-13 03:17:27

标签: python-3.x pandas dataframe percentage

如何计算Pandas DataFrame中每滚动n行之间的百分比变化?以第二行为例:

给出以下数据框:

>df = pd.DataFrame({"A":[14, 4, 5, 4, 1, 55], 
               "B":[5, 2, 54, 3, 2, 32],  
               "C":[20, 20, 7, 21, 8, 5], 
               "D":[14, 3, 6, 2, 6, 4]})

我希望生成的DataFrame为:

enter image description here

但是,我通过使用此代码获得的最接近的信息:

>df.iloc[::2,:].pct_change(-1)

这将导致以下结果:

enter image description here

它正在为每隔一行执行计算,但这与计算每第n行的滚动窗口不同。我碰到过类似的Stack帖子,但该示例并不十分简单。

此外,作为奖励,我想将输出结果显示为两位小数的百分比。

谢谢您的时间!

1 个答案:

答案 0 :(得分:0)

知道了!为“ pct_change()”使用选项“ periods”。

>df.pct_change(periods=-n) #where n=2 for the given example.