python - 应用具有多个参数的函数来创建一个新的 pandas 列

标签 python pandas

我想通过将函数应用于两个现有列,在 pandas 数据框中创建一个新列。关注此 answer当我只需要一列作为参数时,我已经能够创建一个新列:

import pandas as pd
df = pd.DataFrame({"A": [10,20,30], "B": [20, 30, 10]})

def fx(x):
    return x * x

print(df)
df['newcolumn'] = df.A.apply(fx)
print(df)

但是,当函数需要多个参数时,我无法弄清楚如何做同样的事情。例如,如何通过将 A 列和 B 列传递给下面的函数来创建新列?

def fxy(x, y):
    return x * y

最佳答案

如果您可以重写您的函数,您可以使用@greenAfrican 示例。但是如果你不想重写你的函数,你可以把它包装到apply里面的匿名函数中,像这样:

>>> def fxy(x, y):
...     return x * y

>>> df['newcolumn'] = df.apply(lambda x: fxy(x['A'], x['B']), axis=1)
>>> df
    A   B  newcolumn
0  10  20        200
1  20  30        600
2  30  10        300

关于python - 应用具有多个参数的函数来创建一个新的 pandas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914937/

相关文章:

python - 如何根据条件合并具有不同标题但相同数据的csv文件

python - 如何按列名称分组并加入

python - 我什么时候应该(不)想在我的代码中使用 pandas apply() ?

python - 在 Django 迁移创建期间忽略 CharField "choices"中的更改

python - 梯度图和箭袋图

python - Pandas 将过滤后的行附加到另一个 DataFrame

Pandas 根据多列条件创建新列

python - 如何使用数组中的 termcolor 使用 Python 打印不同的颜色?

python - 为什么这个简单的骰子代码 'print' 没有任何内容?

python - PyCharm 变量资源管理器不显示带有空格的 Pandas 列名称