删除熊猫中重复的置换行

时间:2019-03-07 15:55:20

标签: python-3.x pandas

我有一个Pandas DF,其中有三列,如下所示:

  City1 City2  Totalamount
0     A     B         1000
1     A     C         2000
2     B     A         1000
3     B     C          500
4     C     A         2000
5     C     B          500

我要删除重复的行,其中(city1,city2)=(city2,city1)。结果应为

  City1 City2  Totalamount
0     A     B         1000
1     A     C         2000
2     B     C          500

我尝试过

res=DFname.drop(DFname[(DFname.City1,DFname.City2) == (DFname.City2,DFname.City1)].index)

但是它给出了一个错误。

可以请你帮忙

谢谢

3 个答案:

答案 0 :(得分:1)

您先进行排序,然后删除重复项:

import numpy as np

cols = ['City1', 'City2']
df[cols] = np.sort(df[cols].values, axis=1)
df = df.drop_duplicates()

答案 1 :(得分:0)

您可以使用:

import pandas as pd
df.drop_duplicates(['city1', 'city2'])

答案 2 :(得分:0)

如果整个数据框遵循您在示例中显示的模式,则:

  • 所有行都重复,如(A,B)和(B,A)
  • 没有未配对的条目
  • CityA和CityB始终不同(没有(A,A)的实例)

那么您只需做

df = df[df['City1'] < df['City2']]

如果该示例不能代表您整个数据框架,请提供一个示例。