【发布时间】:2020-10-20 19:14:49
【问题描述】:
我有这两个很难合并的数据框:
df1 = pd.DataFrame({'id': [ ["001", "001"], ["001"], ["007", "001"]]})
输出:
id
0 [001, 001]
1 [001]
2 [007, 001]
和
df2 = pd.DataFrame({'id': [ "001", "007"],'name': ['Name01', 'Name02']})
输出:
id name
0 001 Name01
1 007 Name02
而我想到达的是这样的:
df3 = pd.DataFrame({'id': [ ["001", "001"], ["001"], ["007", "01"]],
'name': [ ['Name01','Name01'], ['Name01'], ['Name02', 'Name01']]})
输出:
id name
0 [001, 001] [Name01, Name01]
1 [001] [Name01]
2 [007, 01] [Name02, Name01]
我的问题是我可以合并,但我没有设法放入我想要的格式。我现在拥有的就在这里:
pd.DataFrame(df2.merge(df1.explode('id'), on= 'id')).groupby('id').agg(lambda x: x.tolist())
输出:
id name
001 [Name01, Name01, Name01, Name01]
007 [Name02]
【问题讨论】: