gpt4 book ai didi

python - 在 df.apply() 中的自定义函数中传递 Pandas DataFrame 中的不同列

转载 作者:行者123 更新时间:2023-11-28 19:52:53 24 4
gpt4 key购买 nike

假设我有一个数据框df:

  x y z
0 1 2 3
1 4 5 6
2 7 8 9

我想要两个新列,分别是 x * y 和 x * z:

  x y z xy xz
0 1 2 3 2 3
1 4 5 6 20 24
2 7 8 9 56 63

因此我定义了一个函数 func(仅作为示例),它将字符串 'y' 或字符串 'z' 作为一个参数,用于指示我要将哪一列与列 x 相乘:

def func(row, colName):
return row['x'] * row[colName]

并将该函数应用于数据框df:

df['xz'] = df.apply(func, axis=1)

显然这里是错误的,因为我没有指定 colName'y''z'。问题是,df.apply() 只接受函数名,我如何告诉它接受两个参数?

最佳答案

我认为 eval 在这里很完美

df['x*y'],df['x*z']=df.eval('x*y'),df.eval('x*z')
df
Out[14]:
x y z x*y x*z
0 1 2 3 2 3
1 4 5 6 20 24
2 7 8 9 56 63

关于python - 在 df.apply() 中的自定义函数中传递 Pandas DataFrame 中的不同列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com