我可以通过定义用户函数并使用apply来在Pandas中添加新列。然而,我想使用lambda来实现这一点;有没有什么方法可以绕过这个问题?
例如,df
有两列a
和b
。我想创建一个新的列c
,它等于a
和b
之间最长的长度。
df = pd.DataFrame({'a':['dfg','f','fff','fgrf','fghj'], 'b' : ['sd','dfg','edr','df','fghjky']})
类似这样的内容:
df['c'] = df.apply(lambda x, len(df['a']) if len(df['a']) > len(df['b']) or len(df['b']) )
一种方法:
df['c'] = df.apply(lambda x: max([len(x) for x in [df['a'], df['b']]]))
这会产生一个由NaN组成的列。
a b c
0 dfg sd NaN
1 f dfg NaN
2 fff edr NaN
3 fgrf df NaN
4 fghj fghjky NaN