首页 > 解决方案 > 在 DataFrame 中计算速率

问题描述

我有一个如下的数据框:

 df = pd.DataFrame({ 
        'Code':['ABC','DEF','GHI','JKL','MNO'],       
        'Val': [1000, 2000, 5000,7000, 8000]})
    #df['Diff rate'] = df.Val.diff()
    df

我想介绍一个新列“Diff Rate”,它具有(当前 Val -Previous Val)/Current Val 之间的差异。我该怎么办?预期值是:NaN,0.5,0.6,0.2857,0.125Diff Rate列谢谢

标签: pythonpython-3.xdataframe

解决方案


利用:

df['Diff rate'] = df["Val"].diff() / df["Val"]
print(df)

这打印:

  Code   Val  Diff rate
0  ABC  1000        NaN
1  DEF  2000   0.500000
2  GHI  5000   0.600000
3  JKL  7000   0.285714
4  MNO  8000   0.125000

推荐阅读