3 回答
TA贡献1993条经验 获得超5个赞
另外,您可以使用numpy基础函数:
>>> import numpy as np
>>> df = pd.DataFrame({"A": [10,20,30], "B": [20, 30, 10]})
>>> df['new_column'] = np.multiply(df['A'], df['B'])
>>> df
A B new_column
0 10 20 200
1 20 30 600
2 30 10 300
或一般情况下向量化任意函数:
>>> def fx(x, y):
... return x*y
...
>>> df['new_column'] = np.vectorize(fx)(df['A'], df['B'])
>>> df
A B new_column
0 10 20 200
1 20 30 600
2 30 10 300
TA贡献1906条经验 获得超3个赞
如果可以重写函数,则可以使用@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
TA贡献1807条经验 获得超9个赞
这样可以解决问题:
df['newcolumn'] = df.A * df.B
您也可以这样做:
def fab(row):
return row['A'] * row['B']
df['newcolumn'] = df.apply(fab, axis=1)
添加回答
举报