小编piy*_*rma的帖子

通过在两个现有列上使用lambda函数在Panda中创建新列

我可以通过定义用户函数然后使用apply在Panda中添加一个新列.但是,我想用lambda做到这一点; 有办法吗?

例如,df有两列ab.我想创建一个新列c,它等于a和之间的最长长度b.

就像是:

df['c'] = df.apply(lambda x, len(df['a']) if len(df['a']) > len(df['b']) or len(df['b']) )
Run Code Online (Sandbox Code Playgroud)

一种方法:

df = pd.DataFrame({'a':['dfg','f','fff','fgrf','fghj'], 'b' : ['sd','dfg','edr','df','fghjky']})

df['c'] = df.apply(lambda x: max([len(x) for x in [df['a'], df['b']]]))
print df
      a       b   c
0   dfg      sd NaN
1     f     dfg NaN
2   fff     edr NaN
3  fgrf      df NaN
4  fghj  fghjky NaN
Run Code Online (Sandbox Code Playgroud)

python lambda calculated-columns multiple-columns pandas

16
推荐指数
1
解决办法
3万
查看次数