我有几个来自数据库的小数据集,显示不同生物途径中的基因。我的最终目标是找出不同数据集中显示的基因是什么。出于这个原因,我尝试从每个数据集制作多级数据帧,并将它们合并到一列上。然而,它看起来毫无进展。
测试样品:https://www.mediafire.com/file/bks9i9unfci0h1f/sample.rar/file
制作多级列:
import pandas as pd
df1 = pd.read_csv("Bacterial invasion of epithelial cells.csv")
df2 = pd.read_csv("C-type lectin receptor signaling pathway.csv")
df3 = pd.read_csv("Endocytosis.csv")
title1 = "Bacterial invasion of epithelial cells"
title2 = "C-type lectin receptor signaling pathway"
title3 = "Endocytosis"
final1 = pd.concat({title1: df1}, axis = 1)
final2 = pd.concat({title2: df2}, axis = 1)
final3 = pd.concat({title3: df3}, axis = 1)
我尝试使用pandas.merge((来合并"上的数据帧;用户ID";列:
pd.merge(final1, final2, on = "User ID", how = "outer")
但是我犯了一个错误。我不能使用droplevel((,因为我需要顶部的标题。因此,我可以看到每个样本属于哪个数据集。有什么建议吗?
既然你想看看哪些基因出现在不同的数据集中,听起来内部连接可能更有用?将用户ID作为单行索引。
df1 = pd.read_csv("Bacterial invasion of epithelial cells.csv").set_index('User ID')
df2 = pd.read_csv("C-type lectin receptor signaling pathway.csv").set_index('User ID')
df3 = pd.read_csv("Endocytosis.csv").set_index('User ID')
final1 = pd.concat({"Bacterial invasion of epithelial cells": df1}, axis = 1)
final2 = pd.concat({"C-type lectin receptor signaling pathway": df2}, axis = 1)
final3 = pd.concat({"Endocytosis": df3}, axis = 1)
final1.merge(final3, left_index=True, right_index=True)#.merge(final2, left_index=True, right_index=True)
输出:
Bacterial invasion of epithelial cells Endocytosis
Gene Symbol Gene Name Entrez Gene Score Gene Symbol Gene Name Entrez Gene Score
User ID
P51636 CAV2 caveolin 2 858 1.3911 CAV2 caveolin 2 858 1.3911
Q03135 CAV1 caveolin 1 857 1.5935 CAV1 caveolin 1 857 1.5935
(我已经评论了final2
的第二次合并操作,因为它和其他两个之间没有任何重叠的基因,但你可以用你喜欢的数据集重复这个过程。(