Pandas 数据框根据来自多列的输入应用 lambda

Cha*_*uad 3 python lambda dataframe pandas

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


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

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

jez*_*ael 6

我认为apply这不是必需的,只需将列连接在一起+

df['FullName'] = df.FirstName + ' ' + df.LastName
Run Code Online (Sandbox Code Playgroud)

或使用Series.str.cat

df['FullName'] = df.FirstName.str.cat(df.LastName, sep=' ')
Run Code Online (Sandbox Code Playgroud)

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

df['FullName'] = df.apply(lambda x: x.FirstName + ' ' + x.LastName, axis=1)
Run Code Online (Sandbox Code Playgroud)