【发布时间】:2016-12-20 19:55:13
【问题描述】:
我有多个具有以下命名约定的文件。
ENCSR000EQO_0_0.txt
ENCSR000DIA_0_0.txt
ENCSR000DIA_1_1.txt
ENCSR000DIA_2_1.txt
ENCSR000DIM_0_0.txt
ENCSR000DIM_1_1.txt
ENCSR000AIB_0_0.txt
ENCSR000AIB_1_1.txt
ENCSR000AIB_2_1.txt
ENCSR000AIB_3_1.txt
我想根据文件名使用 pandas 将它们合并为数据帧,因此我将得到 4 个结果数据帧。然后对于这 4 个中的每一个,我想按基因(GeneName)列进行分组。因为同一个基因会出现多次。
它们都以相同的顺序具有相同的列。我可以一次将所有 10 个合并在一起,但我不知道如何按名称合并。
path = '/renamed/'
print os.listdir(path)
df_merge = None
for fname in os.listdir(path):
if fname.endswith('.txt'):
df = pd.read_csv(path + fname, sep='\t', header=0)
df.columns = ['ID ', 'Chr', 'Start', 'End', 'Strand', 'Peak Score', 'Focus Ratio/Region Size',
'Ann', 'DetAnn', 'Distance', 'PromoterID', 'EID',
'Unigene', 'Refseq', 'Ensembl', 'GeneName', 'GeneAlias',
'GeneDescription', 'GeneType']
df = df.groupby('GeneName').agg(np.mean)
print df
感谢您的任何意见。
【问题讨论】:
-
我想你想要一个叫做
join的东西。查找pd.merge。 -
也许this post 会有所帮助。