Панды перебирают листы Excel и добавляют к df - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь перебрать лист Excel и добавить данные из нескольких листов во фрейм данных.

Пока у меня есть:

master_df = pd.DataFrame()
for sheet in target_sheets:
    df1 = file.parse(sheet, skiprows=4) 
    master_df.append(df1, ignore_index=True)

Но потом, когда я звоню master_df.head(), он возвращает __

Данные на этих листах имеют одинаковый формат и связаны друг с другом.

Так что я бы хотел присоединиться к ним вот так:

Лист 1 содержит:

A1
B1
C1

Лист 2 содержит:

A2
B2
C2

Лист 3:

A3
B3
C3

Конечный результат:

A1
B1
C1
A2
B2
C2
A3
B3
C3

Правильна ли моя логика или как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Просто используйте pd.concat():

pd.concat([pd.read_excel(file, sheet_name=sheet) for sheet in ['Sheet1','Sheet2','Sheet3']], axis=1)

Например, выдаст:

   A1  B1  C1  A2  B2  C2  A3  B3  C3
0   1   2   3   1   2   3   1   2   3
1   4   5   6   4   5   6   4   5   6
2   7   8   9   7   8   9   7   8   9
0 голосов
/ 02 ноября 2018

Код ниже будет работать, даже если вы не знаете точные имена листов в файле Excel. Вы можете попробовать это:

import pandas as pd

xls = pd.ExcelFile('myexcel.xls')

out_df = pd.DataFrame()

for sheet in xls.sheet_names:
    df = pd.read_excel('myexcel.xls', sheet_name=sheet)
    out_df.append(df)  ## This will append rows of one dataframe to another(just like your expected output)

print(out_df)

## out_df will have data from all the sheets

Дайте мне знать, если это поможет.

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