Пишите столбцы xlsx друг под другом с помощью Pandas Python3 xlsxwriter - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть один файл excel (*. Xlsx) с тремя листами.На каждом листе есть колонка под названием «Фирма».Я хочу поместить их в новый файл xlsx в виде одного столбца, все три которого расположены ниже друг друга, и только один заголовок столбца сверху «Firma».Я попытался конкатенировать, как liste1_1 ['Firma'] + liste1_2 ['Firma'] + liste1_3 ['Firma'], но это помещает индекс 1 всех 3 столбцов в одну строку и индекс 2 всех 3 столбцов в одну строку и т. Д.Но я хочу, чтобы они были ниже друг друга.

Когда я запускаю этот код:

import pandas as pd

liste1_1 = pd.read_excel(r'C:\Users\benja\Google Drive\Versandlisten\Mappe1.xlsx', sheet_name=0)
liste1_2 = pd.read_excel(r'C:\Users\benja\Google Drive\Versandlisten\Mappe1.xlsx', sheet_name=1)
liste1_3 = pd.read_excel(r'C:\Users\benja\Google Drive\Versandlisten\Mappe1.xlsx', sheet_name=2)
a = liste1_1[['Firma']]
b = liste1_2[['Firma']]
c = liste1_3[['Firma']]
neu = [a,b,c]
writer = pd.ExcelWriter(r'C:\\Users\\benja\\Google Drive\\Versandlisten\\neu.xlsx', engine='xlsxwriter')
for x in neu:
    x.to_excel(writer, sheet_name='Gesamtliste', index=False)
writer.save()

Он помещает только столбцы последнего листа в Excel, но он не собирает все 3 столбца полностью нижедруг друга.

Не могу показать данные.Но хочу привести пример ниже:

Лист 1 ввода:

enter image description here Лист 2 ввода:

enter image description here Лист 3 ввода:

enter image description here

Лист 1 результата:

enter image description here Позже я хочу взять 5 или более файлов Excel, прочитать столбцы с именем "Firma" и поместить его в один новый списокниже остальных.То же самое для разных столбцов.

1 Ответ

0 голосов
/ 07 декабря 2018

Если все ваши листы имеют одинаковую структуру (что кажется), вы можете использовать pd.concat следующим образом:

pd.concat([liste1_1, liste1_2, liste1_3])

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

df = pd.concat([liste1_1, liste1_2, liste1_3], sort=False) # avoiding the warning here

writer = pd.ExcelWriter(r'C:\Users\benja\Google Drive\Versandlisten\neu.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Gesamtliste', index=False)
writer.save()
...