用重复的行替换原始行,然后删除重复的行

时间:2019-10-11 15:34:29

标签: python python-3.x pandas

我有一个类似于

的数据框
    Name   Value  Value2
     A       1      11        
     B       2      12
     C       3      13
     A       4      14
     B       5      15

我需要将行命名为重复项,并将行替换为最后一个重复项,然后删除最后一个重复项。因此,在此示例中,输出为

    Name   Value  Value2
     A       4      14
     B       5      15
     C       3      13    

什么是有效的方法?

4 个答案:

答案 0 :(得分:2)

喜欢吗?

data.drop_duplicates(subset='Name', keep='last').sort_values('Name')

答案 1 :(得分:1)

尝试使用

df = df.groupby('Name',as_index=False).nth(-1)

答案 2 :(得分:1)

使用groupby.last

df.groupby('Name',as_index=False).last()

输出:

  Name  Value  Value2
0    A      4      14
1    B      5      15
2    C      3      13

答案 3 :(得分:0)

由于您希望保留每个单独的Name值的最后一次出现,因此无需替换较早的值。您应该只删除重复项,并用Name过滤并传递参数keep='last'

data = {'Name':['A','B','C','A','B'],'Value':[1,2,3,4,5],'Value2':[11,12,13,14,15]}
df = pd.DataFrame(data)
df = df.drop_duplicates('Name',keep='last')
print(DataFrame)

输出:

  Name  Value  Value2
2    C      3      13
3    A      4      14
4    B      5      15