我想问一下是否有人知道如何使用多级索引将多个数据帧堆叠成一个数据帧而不是像我正在做的那样的数据帧列表。感谢
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)
答案 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)