Python 如何合并数据帧并过滤不同列中的重复内容?

Python 如何合并数据帧并过滤不同列中的重复内容?,python,pandas,Python,Pandas,我目前正在学习python 2.7中的pandas。我正在学习pandas中的merge()方法 以下是我创建dataframe的代码: import pandas as pd eibi = {'A': ['aaa','bbb','ccc','eee','fff'], 'B': ['bbb','aaa','ccc','fff','eee'] } df = pd.DataFrame(eibi) print df 输出为: A B 0 a

我目前正在学习python 2.7中的pandas。我正在学习pandas中的merge()方法

以下是我创建dataframe的代码:

import pandas as pd

eibi = {'A': ['aaa','bbb','ccc','eee','fff'],
        'B': ['bbb','aaa','ccc','fff','eee']
        }

df = pd.DataFrame(eibi)

print df
输出为:

     A    B  
0  aaa  bbb
1  bbb  aaa
2  ccc  ddd
3  eee  fff
4  fff  eee
我想按数据帧本身中的行合并数据帧。目标是如果B列中的单元格与A列中的单元格匹配,则将该单元格移动到C列和D列

我希望下面的数据框能够清楚地说明我期望的数据框

     A    B    C    D
0  aaa  bbb  bbb  aaa
2  ccc  ddd  
3  eee  fff  fff  eee
我试图复制df数据帧,然后使用merge()方法和left merge将其合并。这是我的密码:

fd = df

new_dataframe = pd.merge(left=df, right=fd, left_on='A', right_on='B', how='left')

print new_dataframe
输出为:

   A_x  B_x  A_y  B_y
0  aaa  bbb  bbb  aaa
1  bbb  aaa  aaa  bbb
2  ccc  ddd  
3  eee  fff  fff  eee
4  fff  eee  eee  fff

我的问题是“如何删除索引1和4?”以及“是否有其他方法可以获得预期结果?”

因为您的问题是如何删除索引1和4

output[~pd.DataFrame(np.sort(output.values)).duplicated()]
Out[816]: 
   A_x  B_x  A_y  B_y
0  aaa  bbb  bbb  aaa
2  ccc  ddd          
3  eee  fff  fff  eee

@谢谢你的关注。我的问题还不够清楚吗?不。。。我不太清楚。“”“目标是如果B列中的单元格与A列中的单元格匹配,则将该单元格移动到C列和D列中。”“”?请澄清我是否包含了预期的数据帧。我的问题已经回答了。顺便说一句,谢谢你的帮助。我肯定看到了你的预期成果。仅文本描述与预期输出不匹配。不要介意。你的问题解决了。谢谢你的回答。它起作用了。然后我将努力学习理解它是如何工作的。