我目前有两个大的数据帧,为了回答这个问题,我将对它们进行浓缩。数据框1有一个问题集和抄本列表。我必须将转录本与数据框架2中的相应转录本相匹配,并获得每个主题的数据,如下所示:
Probeset Transcript
0 1554784_at ENST00000547702
1 NaN ENST00000547849
2 212983_at ENST00000311189
3 NaN ENST00000397596
4 1566643_a_at ENST00000587894
,然后是下面的数据帧,我需要匹配转录本:
transcript_id phchp230v2 phchp273v3 phchp367v3 phchp201v2
0 ENST00000547702 0.000000 0.000000 0.000000 0.000000
1 ENST00000547849 0.000000 0.000000 0.000000 0.000000
2 ENST00000311189 0.336418 0.044721 0.155847 1.676620
3 ENST00000397596 0.027106 0.016806 0.014509 0.022015
4 ENST00000587894 0.048200 0.089618 0.046528 0.000000
我需要做的是将数据框1中的转录本与数据框2中的转录本相匹配,并获取数据框2顶部的特定主题的每个转录本中的数据。然而,每一个都有很多数据,所以我必须搜索转录本和相应的转录本数据,因为它们是按照我展示的顺序排列的。预期的输出如下所示:
Probeset Transcript phchp230v2 phchp273v3 phchp367v3 phchp201v2
0 1554784_at ENST00000547702 0.000000 0.000000 0.000000 0.000000
1 NaN ENST00000547849 0.000000 0.000000 0.000000 0.000000
2 212983_at ENST00000311189 0.336418 0.044721 0.155847 1.676620
3 NaN ENST00000397596 0.027106 0.016806 0.014509 0.022015
4 1566643_a_at ENST00000587894 0.048200 0.089618 0.046528 0.000000
我不知道如何去寻找成绩单,然后放置与正确的主题标题找到的具体数据,以及,提前感谢大家!
您可以按.merge()
合并它们,如下所示:
(假设第一/第二数据帧分别称为df1
/df2
)
df_out = df1.merge(df2.rename({'transcript_id': 'Transcript'}, axis=1), on='Transcript', how='left')
结果:
print(df_out)
Probeset Transcript phchp230v2 phchp273v3 phchp367v3 phchp201v2
0 1554784_at ENST00000547702 0.000000 0.000000 0.000000 0.000000
1 NaN ENST00000547849 0.000000 0.000000 0.000000 0.000000
2 212983_at ENST00000311189 0.336418 0.044721 0.155847 1.676620
3 NaN ENST00000397596 0.027106 0.016806 0.014509 0.022015
4 1566643_a_at ENST00000587894 0.048200 0.089618 0.046528 0.000000