使用Pandas Python3 xlsxwriter在彼此之间写下xlsx列

时间:2018-12-06 23:18:38

标签: python-3.x pandas xlsxwriter

我有一个包含三张纸的excel(*。xlsx)文件。每个工作表都有一个名为“ Firma”的列。我想将它们放在一个新的xlsx文件中,作为一列,所有三列都在彼此下面,并且只有一个列标题位于“ Firma”顶部。我试着像liste1_1 ['Firma'] + liste1_2 ['Firma'] + liste1_3 ['Firma']进行叠写,但这会将所有3列的索引1放在一行中,而将所有3列的索引2放在一行中,依此类推。但是我希望他们彼此之间。

当我运行此代码时:

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 :(得分:1)

如果所有工作表都具有完全相同的结构(看上去),则可以按以下方式使用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()