我有一个类似于
的数据框 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
什么是有效的方法?
答案 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