使用Python将文件夹中的所有.xls文件附加到一个.csv文件中

时间:2016-01-07 09:05:16

标签: python excel csv

我有一个包含多个.xls文件的文件夹,我想将它们组合/附加到一个csv文件中。

我已准备好脚本,但我遇到的问题是输出与输入的顺序不同,如果任何文件中的列名不同,则输出有一个新列,例如:

 Input1                      Input2

col1  col2   col3            col1 col2 Col3
a1    a2     a3              b1   b2   b3
Output shown                    Output Expected

col1 col2 col3 Col3             col1 col2 col3
a1   a2   a3   NAN              a1   a2   a3
b1   b2   NAN  b3               b1   b2   b3

我目前的剧本:

#******************************************************************************************#
#*                        IMPORTING LIBRARIES                                             *#
#******************************************************************************************#

import os as os
import pandas as pd
import time 

start_time = time.time()

#******************************************************************************************#
#             MERGING ALL THE FILES INTO ONE DATAFRAME                                    *#
#******************************************************************************************# 

input_path = os.getcwd()
files = os.listdir(input_path)
files

#******************************************************************************************#
#                        PICKING OUT ALL THE .XLS FILES                                   *#
#******************************************************************************************# 

files_xls = [f for f in files if f[-3:] in ('xls', '.xlsx', '.csv') ] 
files_xls

#******************************************************************************************#
#                    APPENDING THE FILES INTO ONE DATAFRAME                               *#
#******************************************************************************************# 

#Initializing one empty dataframe
 master = pd.DataFrame()

for f in files_xls:
    data = pd.read_excel(f)
     master = master.append(data, ignore_index=True)

#******************************************************************************************#
#                   EXPORTING THE FILE INTO INTERIM LOCATION                              *#
#******************************************************************************************# 

master.to_csv(input_path+'master.csv')


# Printing time taken in seconds
print("--- %s seconds ---" % (time.time() - start_time))    

如果你需要输入,那么你可以在这里找到它(下载任何文件):

https://www.rbi.org.in/Scripts/bs_viewcontent.aspx?Id=2009     

1 个答案:

答案 0 :(得分:0)

尝试加载没有标题的文件并应用自定义文件,它应该看起来像这样:

git ls-remote

a72db09adb82fdf2452d2ecb9ca2d4a48ad86d89    HEAD
628160ed4c92d0c6ea46db77cb94d89e3748dcad    refs/heads/Database
a72db09adb82fdf2452d2ecb9ca2d4a48ad86d89    refs/heads/Interface
a72db09adb82fdf2452d2ecb9ca2d4a48ad86d89    refs/heads/master