Pandas 在具有重复项的列上合并两个dataframe
我有两个数据帧,看起来像:Pandas 在具有重复项的列上合并两个dataframe,pandas,dataframe,Pandas,Dataframe,我有两个数据帧,看起来像: col1 col2 1 a 1 b 2 c 及 如何合并它们(在col1上)以获得以下内容 col1 col2 col3 1 a d 1 b e 2 c Nan 3 Nan f 我尝试了pd.merge,但没有得到想要的结果。您可以执行以下操作: df1['key'] = df1.groupby('col1').cumcount() df2[
col1 col2
1 a
1 b
2 c
及
如何合并它们(在col1上)以获得以下内容
col1 col2 col3
1 a d
1 b e
2 c Nan
3 Nan f
我尝试了pd.merge,但没有得到想要的结果。您可以执行以下操作:
df1['key'] = df1.groupby('col1').cumcount()
df2['key'] = df2.groupby('col1').cumcount()
res = df1.merge(df2, on=['col1', 'key'], how='outer').drop('key', 1)
print(res)
输出
col1 col2 col3
0 1 a d
1 1 b e
2 2 c NaN
3 3 NaN f
groupby('col1').cumcount()的思想是为重复的元素创建一个唯一的键。您可以执行以下操作:
df1['key'] = df1.groupby('col1').cumcount()
df2['key'] = df2.groupby('col1').cumcount()
res = df1.merge(df2, on=['col1', 'key'], how='outer').drop('key', 1)
print(res)
输出
col1 col2 col3
0 1 a d
1 1 b e
2 2 c NaN
3 3 NaN f
groupby('col1').cumcount()的思想是为重复的元素创建一个唯一的键。非常好的解决方案!非常感谢。非常好的解决方案!非常感谢。