python - Pandas 数据框任意两列之间的百分比差异

标签 python pandas dataframe

我想为任意两个 Pandas 列之间的百分比差异计算定义一个函数。
假设我的数据框由以下定义:

R1  R2    R3    R4   R5    R6
 A   B     1     2    3     4

我希望我的计算定义为
df['R7'] = df[['R3','R4']].apply( method call to calculate perc diff)


df['R8'] = df[['R5','R6']].apply(same method call to calculate perc diff)

怎么做?

我在下面试过
df['perc_cnco_error'] = df[['CumNetChargeOffs_x','CumNetChargeOffs_y']].apply(lambda x,y: percCalc(x,y))

def percCalc(x,y):
    if x<1e-9:
        return 0
    else:
        return (y - x)*100/x

它给了我错误信息

TypeError: ('() takes exactly 2 arguments (1 given)', u'occurred at index CumNetChargeOffs_x')

最佳答案

用最简单的话来说:

def percentage_change(col1,col2):
    return ((col2 - col1) / col1) * 100
您可以将其应用于数据框的任何 2 列:
df['a'] = percentage_change(df['R3'],df['R4'])    
df['b'] =  percentage_change(df['R6'],df['R5'])

Out[220]: 
  R1 R2  R3  R4  R5  R6      a     b
0  A  B   1   2   3   4  100.0 -25.0

关于python - Pandas 数据框任意两列之间的百分比差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42100058/

相关文章:

python - 将字典列表的字典转换为数据框

python - 使用 Pandas 循环读取CSV文件,然后连接它们

python - Pandas 通过多个键连接数据框

python - 是否有任何 python 模块可以在文本模式下绘制二维笛卡尔坐标?

python - 以日期和第三个变量作为颜色的散点图

python - python pandas 中的 R dcast 等价物

r - 如何在不增删列的情况下合并两个表

python - 无法将简单的文本文件转换为 pandas 数据框

python numpy数组由整个数组索引

python - 在 numpy 数组上并行化区域计算