读取多个文件,并将它们堆叠到一个多级数据框中。每个文件都具有相同的列名

时间:2017-08-10 22:03:45

标签: python database pandas

我想问一下是否有人知道如何使用多级索引将多个数据帧堆叠成一个数据帧而不是像我正在做的那样的数据帧列表。感谢

import glob
import pandas as pd

glist=glob.glob("./path/*.csv")

D=[]
for file in glist:
    X=pd.read_csv(file,names=['name1','name2','name3'],index_col = 0, header=0)
    D.append(X)

2 个答案:

答案 0 :(得分:0)

看起来here是一个好的开始,您需要将路径放在列表中,而不是使用pandas concat()将它们组合在一起

import pandas as pd
import os
from os import path
dfs = [pd.read_csv(path.join('data',x)) for x in os.listdir("data") if path.isfile(path.join("data",x))]
df = pd.concat(dfs)

如果您想为数据框分配新列,请使用assign 两个基于多级索引外观连接多个数据帧 here

并且为了将两个数据帧合并为具有层次列索引的数据帧,请执行以下操作:

 pd.concat(dict(df1 = df1, df2 = df2),axis=1)

Pandas还有一个内置函数来合并两个数据框,看看here

答案 1 :(得分:0)

这似乎做了我想要的。谢谢温。

       D=pd.DataFrame()
       for file in glist:
               X=pd.read_csv(file,names=['name1','name2','name3'],header=0,index_col=0)
               D=pd.concat([X,D],axis=0)