我有一个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)
但是它给出了一个错误。
可以请你帮忙
谢谢
答案 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)
如果整个数据框遵循您在示例中显示的模式,则:
那么您只需做
df = df[df['City1'] < df['City2']]
如果该示例不能代表您整个数据框架,请提供一个示例。