我想合并两个数据框,以便将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 (!!!)
合并两个数据帧的原因可能是数据框result
中产生的行数较少?