当我合并其中的2个时,如何向新的.xlsx文件添加新列

时间:2019-07-02 07:54:23

标签: python python-3.x pandas

优先级:当我合并2个.xlsx文件时,我想创建一个新列,对于python来说还很新,请帮助。

其次:我还想知道如何遍历文件夹中的文件?我正在执行此硬编码,但我想进行改进并遍历每个.xlsx文件以创建所需的结果。

我试图在线寻找资源,但找不到任何资源

excel1 = '1.xlsx'
excel2 = '2.xlsx'
excel3 = '3.xlsx'

df1 = pd.read_excel(excel1)
df2 = pd.read_excel(excel2)
df3 = pd.read_excel(excel3)

values1 = df1[['Purchasing Document','Material','Quantity 
Received','Still to be delivered (qty)','invoice','cancel']]
values2 = df2[['Purchasing Document','Material','Quantity 
Received','Still to be delivered (qty)','invoice','cancel']]
values3 = df3[['Purchasing Document','Material','Quantity 
Received','Still to be delivered (qty)','invoice','cancel']]
dataframes = [values1, values2, values3]

join = pd.concat(dataframes)
join.to_excel("testing123.xlsx")

现在的实际结果仅显示4列,将文档购买到数量,发票和取消给我错误。 我希望结果显示6列,其中4列充满文档,发票和取消将为空白。

1 个答案:

答案 0 :(得分:0)

要从文件夹中读取多个文件并将数据存储在具有多个工作表的excel中,可以尝试以下代码:

import os
import pandas as pd
dirpath = "C:\\Users\\Path\\TO\\Your XLS folder\\data\\"
fileNames = os.listdir(dirpath)

writer = pd.ExcelWriter(dirpath+'combined.xlsx', engine='xlsxwriter')
for fname in fileNames:
    df = pd.read_excel(dirpath+fname)
    print(df)
    df.to_excel(writer, sheet_name=fname)    
writer.save()

我希望这对您的第二点有所帮助。