如何将数据帧的两列传递给python中的函数?

时间:2018-12-27 13:26:44

标签: python pandas dataframe apply

我正在尝试以下代码。但是我返回了错误

  

(““ Newmethod()缺少1个必需的位置参数:'B'”,“出现在索引0”)

def Newmethod(A,B):
  Add=A+B
  return Add

Df=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=["A","B","C"])
Df['D']=Df[['A','B']].apply(Newmethod, axis=1)

我在这里想念什么?请帮我。

1 个答案:

答案 0 :(得分:2)

更改

Df['D']=Df[['A','B']].apply(lambda x:Newmethod(x.A,x.B), axis=1)

   A  B  C   D
0  1  2  3   3
1  4  5  6   9
2  7  8  9  15

说明

您可以使用np.sum或更改Newmethod()。否则,您只能在表单中执行此操作。

import numpy as np
Df['D']=Df[['A','B']].apply(np.sum, axis=1)
# or
def Newmethod(x):
    Add= x.A + x.B
    return Add
Df['D']=Df[['A','B']].apply(Newmethod, axis=1)