Чтение нескольких файлов Excel с использованием цикла и добавления - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь прочитать несколько файлов 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 голосов
/ 27 апреля 2018

Мой совет: , а не , чтобы постоянно добавлять к существующему фрейму данных.

Гораздо эффективнее считать ваши кадры данных в список, а затем объединить их в один вызов:

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]))
0 голосов
/ 08 июня 2019

у меня есть около 1000 файлов Excel, расположенных в одной папке:

C: / BD / КЕН

все файлы имели формат имен:

'Кен <#> от .xlsx'

Мне нужно было прочитать все файлы, таблицу с первого листа, а затем объединить все в один фрейм данных для дальнейшей манипуляции и иметь ОДИН БОЛЬШОЙ файл 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

0 голосов
/ 27 апреля 2018

Я думал об этом ответе.

temp=pd.read_excel(path[0])

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

имеет ли смысл делать цикл таким образом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...