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

问题描述 投票:0回答:2

我正在学习熊猫的lambda功能,我正在尝试使用它,但不知何故卡在一个非常简单的taks,我相信我真的很接近。

数据框看起来像这样

    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')

这看起来像是一项简单的任务,但此时我还是撞在了墙上

python pandas numpy
2个回答
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

0
投票

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

newSumColumn = lambda x: x['A'] / x['b']
df['C'] = df.apply(newSumColumn, axis=1)
© www.soinside.com 2019 - 2024. All rights reserved.