使用for循环追加/连接multipe excel数据集(Python)

时间:2018-02-16 12:25:58

标签: excel python-2.7 pandas append concat

我尝试合并模拟中的数据运行效率更高。目前,根据运行集,数据在不同文件夹中的多个Excel文档中生成。

选择我传递此代码的文件:

def XLFiles():
    root = Tkinter.Tk()
    root.withdraw()
    select_files = tkFileDialog.askopenfilenames(parent=root, initialdir='dir', title='Choose Rig Data Files')
    return select_files

select_files = XLFiles()
file_list = list(select_files)

这将返回相关文档的所有目录的列表。

我的目标是下一步合并数据。这是我遇到问题的地方。

我已经使用过:

df2 = []

for f in list(select_files):
    df1 = pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
    df2.append(df1)

我的问题是这不会返回数据框,而是返回3个列表。我假设是因为我做了' df2 = []'但是,我不知道如何在没有任何数据的情况下将df2创建为数据帧。请你能按正确的方向推动我吗?

谢谢

2 个答案:

答案 0 :(得分:2)

试试这个:

df = pd.concat([pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
                for f in select_files], ignore_index=True)

答案 1 :(得分:2)

您需要concat DataFrame个列表,如果加入空DataFrame则没有错误:

df2 = []
for f in list(select_files):
    df1 = pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
    df2.append(df1)
df = pd.concat(df2, ignore_index=True)