合并两个 pandas 数据帧但打印所有可能的匹配项

Merge two pandas dataframes but print all possible matches

我有两个 pandas dfs 看起来像:


NAME        GROUP
Thomas      1
Jan         1
Thomas      2
Marco       2
Antonio     3
Julio       3
Thomas      3


NAME        STREET
Thomas      Pine
Jan         Park
Thomas      Main
Marco       Fifth
Antonio     Sixth
Julio       Crown
Thomas      King

期望的输出:


NAME        GROUP      STREET
Thomas      1          Pine,Main,King
Jan         1          Park
Thomas      2          Pine,Main,King
Marco       2          Fifth
Antonio     3          Sixth
Julio       3          Crown
Thomas      3          Pine,Main,King

所以基本上我想合并“NAME”上的两个数据框,但我想让它打印街道的所有可能组合。

我试过的是:

df3 = pd.merge(df1, df2, on = 'NAME’)

但这只给我:


NAME        GROUP      STREET
Thomas      1          Pine
Jan         1          Park
Thomas      2          Pine
Marco       2          Fifth
Antonio     3          Sixth
Julio       3          Crown
Thomas      3          King

是否有可能使用合并获得我想要的输出?我已经尝试阅读文档但无法获得正确的输出...

我们可以在 merge

之前做 groupby
out = df1.merge(df2.groupby('NAME',as_index=False)[['STREET']].agg(','.join),how='left')
Out[374]: 
      NAME  GROUP          STREET
0   Thomas      1  Pine,Main,King
1      Jan      1            Park
2   Thomas      2  Pine,Main,King
3    Marco      2           Fifth
4  Antonio      3           Sixth
5    Julio      3           Crown
6   Thomas      3  Pine,Main,King