I have this two dataframes that I am having a hard time to merge:
df1 = pd.DataFrame({'id': [ ["001", "001"], ["001"], ["007", "001"]]})
OUTPUT:
id
0 [001, 001]
1 [001]
2 [007, 001]
and
df2 = pd.DataFrame({'id': [ "001", "007"],'name': ['Name01', 'Name02']})
OUTPUT:
id name
0 001 Name01
1 007 Name02
And I want to arrive is this:
df3 = pd.DataFrame({'id': [ ["001", "001"], ["001"], ["007", "01"]],
'name': [ ['Name01','Name01'], ['Name01'], ['Name02', 'Name01']]})
OUTPUT:
id name
0 [001, 001] [Name01, Name01]
1 [001] [Name01]
2 [007, 01] [Name02, Name01]
My problem is that I can merge, but I am not managing to put in the format I want. What I have at the moment is here:
pd.DataFrame(df2.merge(df1.explode('id'), on= 'id')).groupby('id').agg(lambda x: x.tolist())
OUTPUT:
id name
001 [Name01, Name01, Name01, Name01]
007 [Name02]