Python 熊猫:如何基于备用列值合并行?

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

我有一个数据帧,它有一些类似的行

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
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