Python 合并两个数据帧会在最终数据帧中生成较少的行

Python 合并两个数据帧会在最终数据帧中生成较少的行,python,pandas,Python,Pandas,我想合并两个数据帧,以便将df2的行转换为df1的列 df1 = ID B 1 3 2 4 3 5 df2 = ID Value 1 ABC 1 ACD 2 WWW 结果应该是: result = ID B A_1 A_2 1 3 ABC ACD 2 4 WWW NaN 3 5 NaN NaN 问题是,在合并后,我在实际数据集中遗漏了df1中的一些行,而

我想合并两个数据帧,以便将
df2
的行转换为
df1
的列

df1 = 

ID   B
1    3
2    4
3    5

df2 = 
ID   Value
1    ABC
1    ACD
2    WWW
结果应该是:

result = 
    ID   B   A_1   A_2
    1    3   ABC   ACD
    2    4   WWW   NaN
    3    5   NaN   NaN
问题是,在合并后,我在实际数据集中遗漏了
df1
中的一些行,而我希望保留
df1
中的所有行,即使
df2
中没有匹配

df2['col'] = 'A_' + df2.groupby(['ID'])['Value'].cumcount().astype(str)
df2 = df2.pivot(index='ID', columns='col', values='Value').reset_index()
result = pd.merge(df1, df2)
维度:

df1 = 1404659 rows
df2 = 1015639 rows
result = 1216773 rows (!!!)

两个数据帧的合并在数据帧
结果中生成的行数较少的原因可能是什么?

我认为您需要
连接,因为默认情况下
内部
连接:

另一种解决方案是与默认的
left
join一起使用:

result = df1.join(df2)
result = df1.join(df2)