假设我有一个熊猫数据框,如下所示:
lkey value_x rkey value_y
0 foo nan foo 5
1 foo nan foo 8
2 foo 5 foo 5
3 foo 5 foo 8
4 bar nan bar 6
5 baz 13 baz 7
我想清除数据以得到结果数据框:
lkey rkey value
0 foo foo 5
1 foo foo 8
2 foo foo 5
3 foo foo 8
4 bar bar 6
5 baz baz 13
其中value现在是基于value_x和value_y(在此情况下为最大值)的任意值的列。我该如何实现?
我看过agg,groupby,apply,map等。
答案 0 :(得分:0)
您可以在轴1上找到最大值。
df['value'] = df1[['value_x', 'value_y']].max(1)
或更通用的
df['value'] = df.filter(like = 'value').max(1)
您可以使用
删除value_x和value_ydf.drop(['value_x', 'value_y'], axis = 1, inplace = True)
编辑:如果值是字符串,
df[['value_x', 'value_y']].apply(lambda x: x[0] if len(x[0]) > len(x[1]) else x[1], axis = 1)