熊猫:使用lambda函数通过添加两列来创建新列

时间:2019-04-23 01:28:56

标签: python pandas numpy

我正在Panda中学习lambda函数,并且正在尝试使用它,但是不知何故,我真的很简单。我相信我真的很亲近。

数据框看起来像这样

    A   B
0   1   2
1   2   3
2   3   4

我正在尝试使用以下数据框:

    A   B  C
0   1   2  3
1   2   3  5
2   3   4  8


newSumColumn = lambda x: x['A'] / x['B']
df['C'] = df.apply(newSumColumn)

但是,当我这样做时,我遇到了('A', 'occurred at index Unnamed: 0')

这似乎是一项简单的任务,但此时我将头撞在墙上

2 个答案:

答案 0 :(得分:1)

您有一个错字,需要添加axis=1

# it is B not b
newSumColumn = lambda x: x['A'] / x['B']
#should add axis=1
df.apply(newSumColumn,axis = 1)
Out[1018]: 
0    0.500000
1    0.666667
2    0.750000
dtype: float64

答案 1 :(得分:0)

默认情况下,该函数沿列应用。要沿行申请,您可以尝试:

newSumColumn = lambda x: x['A'] / x['b']
df['C'] = df.apply(newSumColumn, axis=1)