python lambda 循环_Python使用lambda来代替嵌套循环应用pd.DataFrame有可能吗?

是否要添加A列和B列并将结果存储在C中?然后你可以更简单:

df.C = df.A + df.B

正如@EdChum在注释中指出的那样,apply中函数的参数是一个序列,默认情况下在轴0上是行(轴1表示列):

>>> df.apply(lambda s: s)[:3]

A B C D

0 57.890858 72.344298 16.348960 84.109071

1 85.534617 53.067682 95.212719 36.677814

2 23.202907 3.788458 66.717430 1.466331

在这里,我们添加第一行和第二行:

>>> df.apply(lambda s: s[0] + s[1])

A 143.425475

B 125.411981

C 111.561680

D 120.786886

dtype: float64

要处理列,请使用axis = 1关键字参数:

>>> df.apply(lambda s: s[0] + s[1], axis=1)

0 130.235156

1 138.602299

2 26.991364

3 143.229523

...

98 152.640811

99 90.266934

产生与按名称引用列相同的结果:

>>> (df.apply(lambda s: s[0] + s[1], axis=1) ==

df.apply(lambda s: s['A'] + s['B'], axis=1))

0 True

1 True

2 True

3 True

...

98 True

99 True


版权声明:本文为weixin_42496802原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。