合并两个 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
我有两个 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