删除条件重复的行pandas

时间:2018-04-05 15:21:15

标签: python pandas numpy

数据

ID  Field1  Field2
1    A        '1'
2    A        ' '
3    B        '2'
4    B        '3'

ID  Field1  Field2
1    A        '1'
4    B        '3'

我有多个重复行,只在Field2(字符字段)上有所不同。 对于每个不同的Field1,我只想保留具有Field2的 max 字符值的行(即'3'>'2'>'1'>'(空格)')

2 个答案:

答案 0 :(得分:3)

sort_valuesdrop_duplicates

df.sort_values(['Field1', 'Field2']).drop_duplicates('Field1', keep='last')

   ID Field1 Field2
0   1      A    '1'
3   4      B    '3'

groupbyapply

我不推荐这个解决方案。我只是想表现出来。

df.groupby('Field1', as_index=False).apply(
    lambda d: d.iloc[d['Field2'].values.astype(str).argmax()])

   ID Field1 Field2
0   1      A    '1'
1   4      B    '3'

答案 1 :(得分:0)

尝试分组功能

df = pd.DataFrame({'Field1': ['A', 'A', 'B', 'B'], 'Field2': ['1', ' ', '2', '3']})

df.groupby(['Field1']).max()