【发布时间】:2017-05-25 14:47:58
【问题描述】:
我在 Jupyter Notebook 上使用 python 3.4,尝试合并两个数据框,如下所示:
df_A.shape
(204479, 2)
df_B.shape
(178, 3)
new_df = pd.merge(df_A, df_B, how='inner', on='my_icon_number')
new_df.shape
(266788, 4)
我认为上面合并的new_df 的行数应该比df_A 少,因为合并就像一个内部连接。但是为什么new_df 这里的行数实际上比df_A 多?
这是我真正想要的:
我的df_A 是这样的:
id my_icon_number
-----------------------------
A1 123
B1 234
C1 123
D1 235
E1 235
F1 400
而我的df_B 是这样的:
my_icon_number color size
-------------------------------------
123 blue small
234 red large
235 yellow medium
那么我希望new_df 成为:
id my_icon_number color size
--------------------------------------------------
A1 123 blue small
B1 234 red large
C1 123 blue small
D1 235 yellow medium
E1 235 yellow medium
我真的不想删除 df_A 中 my_icon_number 的重复项。知道我在这里错过了什么吗?
【问题讨论】:
-
您在两个数据集中都有重复的
my_icon_number。 -
@piRSquared:您能详细说明一下吗?谢谢!
-
您的简单插图不代表实际。很可能,您在
df_B中重复了 my_icon_number。如果您认为这是b和a之间的一对多连接,它实际上是多对多的,因此返回的记录更多。
标签: python python-3.x pandas dataframe