熊猫数据清理-按行汇总

时间:2019-03-28 23:26:03

标签: python pandas

假设我有一个熊猫数据框,如下所示:

  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等。

1 个答案:

答案 0 :(得分:0)

您可以在轴1上找到最大值。

df['value'] = df1[['value_x', 'value_y']].max(1)

或更通用的

df['value'] = df.filter(like = 'value').max(1)

您可以使用

删除value_x和value_y
df.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)