首页 > 解决方案 > Pandas 数据框根据来自多列的输入应用 lambda

问题描述

假设我有一个如下所示的数据框:


df['GlobalName'][df['GlobalName']==''] = df['IsPerson'].apply(lambda x: x if x==True else '')

如何在数据框上应用 lambda 以使 FullName = FirstName + ' ' + LastName?据我所知,数据帧中的 lambda 只有 1 个输入?谢谢!

标签: pythonpandasdataframelambda

解决方案


我认为apply这里没有必要,只需将列与+

df['FullName'] = df.FirstName + ' ' + df.LastName

或使用Series.str.cat

df['FullName'] = df.FirstName.str.cat(df.LastName, sep=' ')

解决方案lambda是可能的,但速度很慢:

df['FullName'] = df.apply(lambda x: x.FirstName + ' ' + x.LastName, axis=1)

推荐阅读