Python 熊猫:如何基于备用列值合并行?
我有一个数据帧,它有一些类似的行 e、 g:df:Python 熊猫:如何基于备用列值合并行?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个数据帧,它有一些类似的行 e、 g:df: Dist Id ID2 ID3 Values 1.309511252 1 4950005568 4865005556 3 0.239604736 2 13077506433 13062506433 4 0.239604736 2 13062506433 13077506433 4
Dist Id ID2 ID3 Values
1.309511252 1 4950005568 4865005556 3
0.239604736 2 13077506433 13062506433 4
0.239604736 2 13062506433 13077506433 4
0.230578014 3 4990001482 4880017235 4
0.230578014 3 4880017235 4990001482 4
0.199825732 4 5065006006 4950005965 5
0.199825732 4 4950005965 5065006006 5
正如您可以看到的,行号2和3、4和5以及6和7具有相似的值,只是交换了列(ID2和ID3)
我想删除那些重复的行,但保留单个行(在本例中为第1行)
我希望输出为:
Dist Id ID2 ID3 Values
1.309511252 1 4950005568 4865005556 3
0.239604736 2 13062506433 13077506433 4
0.230578014 3 4880017235 4990001482 4
0.199825732 4 4950005965 5065006006 5
当您只考虑一个或一些用于DUPS标记的列时,可以使用“<代码>子集< /代码>参数”。请注意,此方法仅适用于按行复制
df.drop_duplicates(subset=['Dist', 'Id'], inplace=True)
输出
Dist Id ID2 ID3 Values
0 1.309511 1 4950005568 4865005556 3
1 0.239605 2 13077506433 13062506433 4
3 0.230578 3 4990001482 4880017235 4
5 0.199826 4 5065006006 4950005965 5
您可以简单地使用从每个组中选择最后一行
@shinchan请不要忘记投票表决答案。
In [831]: df = df.groupby('Id').tail(1).reset_index()
In [832]: df
Out[832]:
Dist Id ID2 ID3 Values
0 1.309511 1 4950005568 4865005556 3
1 0.239605 2 13062506433 13077506433 4
2 0.230578 3 4880017235 4990001482 4
3 0.199826 4 4950005965 5065006006 5