我想通过将函数应用于两个现有列,在 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/