Как импортировать вкладки Excel и дать имя вкладки в новом столбце соответственно в Python? - PullRequest
1 голос
/ 27 июня 2019

введите описание изображения здесь У меня есть файл с именем Example.xls, в котором у меня есть данные на вкладках sales и purchase.
У нас есть данные на обеих вкладках от столбца A до E. Когда я импортирую эти данные через модуль pandas, я хочу получить такой результат, как столбец A-F, где в столбце F должно отображаться имя таблицы имен.Как отобразить имя листа в модуле pandas?

Я использую код

all= pd.read_excel(Example.xlsx',sheet_name=['Sales','Purchas'])
введите описание изображения здесь , а затем

df= pd.concat(All[frame]for fram in All.keys())

, а затем после того, как я хочу поставитьимя вкладок в моем фрейме данных «Все» в последнем столбце, который F соответственно

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Я думаю, что это самый простой способ.

import pandas as pd

path = r'path_of_your_file'
workbook = pd.read_excel(path, sheet_name = None)
df= pd.DataFrame()
for sheet_name, sheet in workbook.items():
    sheet['sheet'] = sheet_name
    df = df.append(sheet)

# Reset your index or you'll have duplicates
df = df.reset_index(drop=True)
1 голос
/ 27 июня 2019

Приведенный ниже код решит вашу проблему:

import os
from glob import glob
import pandas as pd

f_mask = r'path\*.xlsx' ## The folder path where your Example.xlsx is stored

df = \
pd.concat([df.assign(file=os.path.splitext(os.path.basename(f))[0],
                     sheet=sheet)
           for f in glob(f_mask)
           for sheet, df in pd.read_excel(f, sheet_name=None).items()],
          ignore_index=True)

Код работает следующим образом:

  1. Проверьте базовую папку и возьмите все файлы .xlsx в ней
  2. Чтение файлов по одному
  3. Создание двух дополнительных столбцов, один для имени файла, другой для имени листа

Это решение будет работать, если вы хотите выполнить упражнениедля более 1 файла .xlsx

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