首页 > 解决方案 > 合并多个文件,将文件名作为列名

问题描述

我在一个目录中有多个文件。我想以一种将行合并在一起的方式合并它们,并将文件名保留为列标题。例如,file1 看起来像

ENSG1     12
ENSG2     13
ENSG3     14

file2 看起来像

ENSG1     13
ENSG2     14
ENSG4     15

我期待着像这样的输出

          file1      file2
ENSG1      12         13
ENSG2      13         14
ENSG3      14         0/na
ENSG4      0/na       15

你知道怎么做吗?感谢您的时间!

标签: pythonpandas

解决方案


这是一种使用方法concat

dfs = []
for f in ["file1", "file2"]: # iterate the relevant files here
    df = pd.read_csv(f, header=None, sep = "\s+", index_col=0)
    df.columns = [f]
    dfs.append(df)
res = pd.concat(dfs, axis=1)

输出它:

       file1  file2
ENSG1   12.0   13.0
ENSG2   13.0   14.0
ENSG3   14.0    NaN
ENSG4    NaN   15.0

推荐阅读