Pandas的两个dataframe合并遇到了问题。

例如
第一个dataframe:(3个)

A B
1 5
2 6
3 7

第二个dataframe:(3个)

Me
a
b
c

现在我想让这两个dataframe合并,结果是
A B Me (9个)
1 5 a
1 5 b
1 5 c
2 6 a
2 6 b
2 6 c
3 7 a
3 7 b
3 7 c

该怎么办?

阅读 5.2k
2 个回答

受到@hanteng 回答的启发,将他的答案改进了一下。
以下是我的代码

import pandas as pd
t1 = pd.DataFrame([(1, 5), (2, 6), (3, 7)], columns=['A', 'B'])
t2 = pd.DataFrame(['a', 'b', 'c'], columns=['Me'])
t1['C'], t2['C'] = 1, 1
result = pd.merge(t1, t2, how='outer', on = ['C'])
result.drop('C', axis=1, inplace=True)

以下是我的结果

图片1 图片2
图片描述 图片描述

outer join? 來源: pandas-docs

In [46]: result = pd.merge(left, right, how='outer', on=['key1', 'key2'])

只要把key想好就可以做到。
merging_merge_on_key_outer.png

In [48]: left = pd.DataFrame({'A' : [1,2], 'B' : [2, 2]})

In [49]: right = pd.DataFrame({'A' : [4,5,6], 'B': [2,2,2]})

In [50]: result = pd.merge(left, right, on='B', how='outer')

merging_merge_on_key_dup.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进