熊猫-从数据框中删除两行对称的重复项

时间:2019-10-18 12:25:42

标签: python pandas duplicates

我具有以下国家之间流量的数据框:

import pandas as pd 
data = [['US','FR', 10,'a'], ['FR','US', 15,'b'], ['IT','BA', 14,'c']] 
df = pd.DataFrame(data, columns = ['Country_1', 'Country_2','var_1','var_2']) 
print(df)
  Country_1 Country_2  var_1 var_2
0        US        FR     10     12
1        FR        US     12     10
2        IT        BA     14     5

在所有国家对两次都被看到的意义上是对称的。我的目标是根据 Country_1 Country_2 两列消除对称重复项。在此示例中,预期的数据帧将是:

  Country_1 Country_2  var_1 var_2
0        US        FR     10     12
1        IT        BA     14     5

一个相关的question处理一维情况,但是当存在大量变量(var_11,var_12,var_21,var_22,var_31,var_32; ...)时,该解决方案不起作用。

以前有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

使用:

#first remove all duplicates
df = df.drop_duplicates(['Country_1','Country_2'])

#sorted values in country columns and remove duplicates
m = pd.DataFrame(np.sort(df[['Country_1','Country_2']], axis=1), index=df.index).duplicated()

df = df[~m]
print (df)
  Country_1 Country_2  var_1 var_2
0        US        FR     10     a
2        IT        BA     14     c
相关问题