gpt4 book ai didi

python - Pandas 在使用 apply 方法时删除了 lambda

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:01 24 4
gpt4 key购买 nike

在 pandas 管道中,我知道的最好的方法是在给定数据帧 df 的情况下按行创建新列:

(df
. (...)
.assign(new_col = lambda df_: df_.apply(lambda row: my_function(row), axis=1)
)

assign 需要一个 pd.Series,它本身是通过 apply 按行构建的。
我觉得这个策略太冗长了(一行代码中有两个 lambda)。是否有更简单和/或更有效的方法来达到相同的结果?我正在考虑类似于以下的语法:

 .assign(new_col = lambda row: my_function(row), axis=1)

谢谢。

最佳答案

如您所见,pd.DataFrame.apply接受一个函数。将 lambda row: my_function(row) 应用于每一行是将 my_function 应用于每一行的混淆方式,因为 lambda 只是一个匿名函数.因此,直接输入 my_function 即可:

df.(...)\
.assign(new_col=lambda df_: df_.apply(my_function, axis=1))

请注意,如果 my_function 中使用的列未更改并且您的数据帧索引在整个先前逻辑中保持不变,则可以简化您的逻辑:

df.(...)\
.assign(new_col=df.apply(my_function, axis=1))

关于python - Pandas 在使用 apply 方法时删除了 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51930281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com