import pandas as pd
data = {'Unique_ID': [44,66,12,76,57,83],
'Location 1': ['AA', 'BB','CC','DD','EE','FF'],
'Location 2': ['FF', 'CC','AA','EE','BB','CC'],
'Rank':[1,2,3,4,5,6]
}
pd.DataFrame (data)下面是示例数据集,如下所示

预期输出:

它是根据等级进行排序的。我正在寻找一个最终的数据rank (Df2)与一个最佳的‘位置1’和'location2‘组合基于排名。示例:
。
。
并遍历每一条记录.
提前谢谢
发布于 2020-07-21 17:56:20
使用:
m1 = df[['Location 1', 'Location 2']].stack().duplicated()
m2 = ~m1.any(level=0)
df = df[m2]详细信息:
使用DataFrame.stack通过Location 1和Location 2到Multilevel系列重新定义数据,并使用Series.duplicated创建掩码m1。
print(m1)
0 Location 1 False
Location 2 False
1 Location 1 False
Location 2 False
2 Location 1 True
Location 2 True
3 Location 1 False
Location 2 False
4 Location 1 True
Location 2 True
5 Location 1 True
Location 2 True
dtype: bool在掩码Series.any上使用level=0上的m1并否定这一点,以创建一个新的布尔掩码m2。感谢@ScottBoston的建议。
print(m2)
0 True
1 True
2 False
3 True
4 False
5 False
dtype: bool最后,使用此掩码m2过滤数据文件中的行:
print(df)
Unique_ID Location 1 Location 2 Rank
0 44 AA FF 1
1 66 BB CC 2
3 76 DD EE 4https://stackoverflow.com/questions/63019702
复制相似问题