我想找到person1
和person2
列的唯一组合,尽管数据帧中的值是相反的。下面您可以找到初始数据帧示例,我想在其中找到唯一的人:
df = pd.DataFrame({"person1":["AL","IN","AN","DL","IN","AL","AL","IN","AN"],
"person2":["AL","AN", np.nan,"AL","AN","AL","DL","IN","IN"]})
person1 person2
0 AL AL
1 IN AN
2 AN NAN
3 DL AL
4 IN AN
5 AL AL
6 AL DL
7 IN IN
8 AN IN
我期望的输出如下所示:
person1 person2 person
0 AL AL AL
1 IN AN IN/AN
2 AN NAN AN
3 DL AL DL/AL
4 IN AN IN/AN
5 AL AL AL
6 AL DL DL/AL # Since it has been added as DL/AL NOT AL/DL
7 IN IN IN
8 AN IN IN/AN # Since it has been added as IN/AN NOT AN/IN
我用了这个代码:
df['person'] = np.where(df.person1 != df.person2,
df.person1 + "/" + df.person2, df.person1)
但在我上面的例子中,它在索引6和索引8中返回AL/DL
和AN/IN
。一如既往,当我没有找到合适的方法时,我可以得到DL/AL
和IN/AN
的唯一顺序
熊猫大师,请指路:)
您可以使用方法
apply()
:输出:
如果可能,对两列进行排序:
相关问题 更多 >
编程相关推荐