使用循环读取多个excel文件并追加

时间:2018-04-27 15:14:51

标签: python python-3.x pandas for-loop dataframe

我正在尝试阅读多个excel文件。每次读取一个excel文件时,我想将其附加到另一个excel文件中。最后,我应该得到一个包含所有excel文件内容的数据框。

我怎么能在for循环中做到这一点?

这是我的尝试:

for i in range(1,10):
    temp = pd.read_excel(path[i])
    temp_final=temp

这里的想法是让temp_final包含所有excel文件的内容。类似于temp_final=[excelfile1, excelfile2] pd.concat(temp_final)

的内容

我欢迎任何有关如何完成此for循环的想法。非常感谢

3 个答案:

答案 0 :(得分:2)

我的建议是,以便不断附加到现有数据框。

将数据帧读入列表,然后在一次调用中连接它们会更有效:

dfs = [pd.read_excel(path[i]) for i in range(1, 10)]

df = pd.concat(dfs, ignore_index=True)

替代语法:

dfs = list(map(pd.read_excel, path[:10]))

答案 1 :(得分:0)

我想到了这个答案。

temp=pd.read_excel(path[0])

for i in range(1,2):
    print(i)
    temp1 = pd.read_excel(path[i])
    temp=temp.append(temp1)

以这种方式做循环是否有意义?

答案 2 :(得分:0)

我在一个文件夹中有大约1000个excel文件:

C:/ BD / KEN

所有文件的命名格式为:

'肯<#>日期为.xlsx'

我需要从第一张表中读取所有文件,表格,然后将所有文件合并到一个数据框中以进行进一步操作,并具有一个可以使用的BIG excel文件:

import pandas as pd
import os

#list of <#> series of excel files (around 1000 files total)
names = ['1125','1126','1127']

#column names
ColNames = ['a', 'b', 'c','d','e','f','g','h'] 

#empty dataframe
df = pd.DataFrame(columns=ColNames)

for x,y,z in os.walk('C:/BD/KEN'):
    for i in z:
        if i.split()[1] in names:
            print(i)
            try:
                temp = pd.read_excel('C:/BD/KEN'+i)
            except:
                print('ALERT')
            df.append([temp])

df.to_excel('C:/BD/TOTAL.xlsx', index=None)
print('DONE")

os.walk生成元组(文件夹路径,文件夹名称,文件名)

所以'z'是文件名str