我有一个带有图形内容的pandas DataFrame,我需要使用Python检查“双向性”...
src dest val1 val2
0 A B 8 9
1 B A 8 9
2 B C 7 8
3 D C 5 6
4 B A 5 6
在这种情况下,源'A'和目标'B'之间的链接在DataFrame中具有从'B'到'A'的匹配链接。因此,我可以认为这是一对双向链接。第0行和第4行也是双向链接......
'B'和'C'之间的链接没有从'C'到'B'的相应反向链接。
StackOverflow社区有哪些建议可以确定哪些链接具有匹配的双向链接?或换句话说,哪些行具有匹配的行,其中两列中的值被转置/交换?
看起来像这样的结果DataFrame可能有效:
src dest val1 val2 bidir
0 A B 8 9 True
1 B A 8 9 True
2 B C 7 8 False
3 D C 5 6 False
4 B A 5 6 True
您可以提供任何帮助。
更新 根据acushner提供的非常好的答案,添加到这个,将他的解决方案解决为主要问题,然后填充DataFrame,如上面的结果DataFrame所示。
>>> df['bidir'] = (df.src + df.dest).isin(df.dest + df.src)
>>> print a
src dest val1 val2 bidir
0 A B 8 9 True
1 B A 8 9 True
2 B C 7 8 False
3 D C 5 6 False
答案 0 :(得分:4)
你可以这样做:
(df.src + df.dest).isin(df.dest + df.src)