pandas-在具有元组的列上合并

我有这样一个df:

&gt&燃气轮机&燃气轮机;df1
第1列第2列标签
0 aaa abc(71020,)
1 ddd ghi(99213、99287)
2 bbb cde(77085,)
3 eee ijk(992337102036415)

还有一个类似的df:

&gt&燃气轮机&燃气轮机;df2
71020 77085 36415 99213 99287 99233标签
0    1      0      1      0      0      1     (99233, 71020, 36415,)
1    1      0      0      0      0      0     (71020,)
2    0      0      0      1      1      0     (99213, 99287)
3    0      1      0      0      0      0     (77085,)

并希望通过右键连接2个dfs来生成df,如下所示:

col_1 col_2标签71020 77085 36415 99213 99287 99233
0 aaa abc(71020,)100
1 ddd ghi(9921399287,)0 0 1 0
2 bbb cde(77085,)01 00
3 eee ijk(99233、71020、36415、)10 1

这是我尝试过的,但这会生成一个包含0行的空数据框,但包含所有列名

pd.merge(左=df1,右=df2,左上=['labels'],右上=['labels']))

元组在两个dfs中都被解析为元组。在从文件读取到dfs后,我已经对这两个df上的列执行了ast.literal\u eval。两个dfs也不共享公共索引

我的df尺寸是(528840207)和(528840,5)。我如何有效地做到这一点

对于我来说,通过问题中的数据正确工作:

导入ast
df1[‘labels’]=df1[‘labels’].apply(ast.literal\u eval)
df2[‘labels\u mg’]=df2[‘labels\u mg’].应用(ast.literal\u eval)
df=pd.merge(left=df1,right=df2,left\u on=[‘labels’],right\u on=[‘labels\u mg’]))
打印(df)
第1列第2列标签71020 77085 36415 99213 99287\
0 aaa abc(71020,)100
1 ddd ghi(9921399287)01
2 bbb cde(77085,)01 00
3 eee ijk(992337102036415)10
99233毫克
0 0 (71020,)
1 0 (99213, 99287)
2 0 (77085,)
3 1 (99233, 71020, 36415)

发表评论