如何遍历列名,并在Pandas中的每个列上执行相同的过程



我目前有两个大的数据帧,为了回答这个问题,我将对它们进行浓缩。数据框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

最新更新