我有一个很大的数据框,里面有很多重复项。我想保留每个重复项的第一个和最后一个条目,但删除中间的每个重复项。
我已经尝试通过使用带有参数“first”和“last”的 df.drop_duplicates 来完成此操作,以获得两个数据帧,然后将它们再次合并到一个 df,这样我就有了第一个和最后一个条目,但是没用。
df_first = df
df_last = df
df_first['Path'].drop_duplicates(keep='first', inplace=True)
df_last['Path'].drop_duplicates(keep='last', inplace=True)
提前感谢您的帮助!
最佳答案
使用GroupBy.nth
如果长度为 1
的组避免重复:
df = pd.DataFrame({
'a':[5,3,6,9,2,4],
'Path':list('aaabbc')
})
print(df)
a Path
0 5 a
1 3 a
2 6 a
3 9 b
4 2 b
5 4 c
df = df.groupby('Path').nth([0, -1])
print (df)
a
Path
a 5
a 6
b 9
b 2
c 4
关于python - 在数据框列中保留重复项的第一个和最后一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58198147/