Python 如何合并数据帧并过滤不同列中的重复内容?
我目前正在学习python 2.7中的pandas。我正在学习pandas中的merge()方法 以下是我创建dataframe的代码: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
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列中。”“”?请澄清我是否包含了预期的数据帧。我的问题已经回答了。顺便说一句,谢谢你的帮助。我肯定看到了你的预期成果。仅文本描述与预期输出不匹配。不要介意。你的问题解决了。谢谢你的回答。它起作用了。然后我将努力学习理解它是如何工作的。