我的数据看起来像这样:
Source Target Value
1 Charlie Mac 0.6530945
2 Dennis Fank 0.7296234
3 Charlie Frank 0.4750875
4 Mac Dennis 0.3961787
5 Charlie Dennis 0.6213751
6 Mac Frank 0.9727454
7 Frank Charlie 0.4750875
8 Mac Charlie 0.6530945
9 Frank Mac 0.9727454
10 Frank Dennis 0.7296234
11 Dennis Mac 0.3961787
12 Dennis Charlie 0.6213751
我有两列名字,第三列给出一个关系值。因此第1行与第8行基本相同,第2行与第10行相同。因此,(源,目标)中的名称顺序无关紧要。我想要做的是摆脱这些不需要的行来得到这样的东西:
Source Target Value
1 Charlie Mac 0.6530945
2 Dennis Fank 0.7296234
3 Charlie Frank 0.4750875
4 Mac Dennis 0.3961787
5 Charlie Dennis 0.6213751
6 Mac Frank 0.9727454
显然在这个简单的例子中我可以返回前六行,但我的数据集太大了。我不能只返回" Value"中的唯一项目。列,因为某些不相关的行可能具有相同的值。
答案 0 :(得分:5)
df[~pd.DataFrame(np.sort(df[['Source', 'Target']], 1), df.index).duplicated()]
Source Target Value
1 Charlie Mac 0.653095
2 Dennis Frank 0.729623
3 Charlie Frank 0.475087
4 Mac Dennis 0.396179
5 Charlie Dennis 0.621375
6 Mac Frank 0.972745