我有这样一个df:
>&燃气轮机&燃气轮机;df1
第1列第2列标签
0 aaa abc(71020,)
1 ddd ghi(99213、99287)
2 bbb cde(77085,)
3 eee ijk(992337102036415)
还有一个类似的df:
>&燃气轮机&燃气轮机;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)