Использование Python 3 для импорта нескольких книг и листов Excel в один фрейм данных - PullRequest
0 голосов
/ 05 сентября 2018

Я все еще изучаю Python. Я пытаюсь импортировать несколько рабочих книг и все рабочие таблицы в один фрейм данных.

Вот что у меня есть:

import pandas as pd
import numpy as np

import os #checking the working directory 
print(os.getcwd())

all_data = pd.DataFrame() #creating an empty data frame
for file in glob.glob("*.xls"): #import every file that ends in .xls
    df = pd.read_excel(file)
    all_data = all_data.append(df, ignore_index = True)

all_data.shape #12796 rows with 19 columns # we will have to find a way to check if this is accurate 

У меня возникли реальные проблемы с поиском любой документации, которая подтвердит / объяснит, импортирует ли этот код все таблицы данных в каждой книге. Некоторые из этих файлов имеют 15-20 листов

Вот ссылка на то, где я нашел глобальное объяснение: http://pbpython.com/excel-file-combine.html

Любой совет очень ценится. Я все еще новичок в R и Python, поэтому, если бы вы могли объяснить это как можно подробнее, я был бы очень признателен!

1 Ответ

0 голосов
/ 05 сентября 2018

Чего вам не хватает, так это импорта всех листов в рабочей книге.

import pandas as pd
import numpy as np

import os #checking the working directory 
print(os.getcwd())

all_data = pd.DataFrame() #creating an empty data frame
rows = 0
for file in glob.glob("*.xls"): #import every file that ends in .xls
    # df = pd.read_excel(file).. This will import only first sheet
    xls = pd.ExcelFile(file)
    sheets = xls.sheet_names # To get names of all the sheets
    for sheet_name in sheets:
        df = pd.read_excel(file, sheetname=sheet_name)
        rows += df.shape[0]
    all_data = all_data.append(df, ignore_index = True)

print(all_data.shape[0]) # Now you will get all the rows which should be equal to rows
print(rows)
...