我有一个包含多个.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
答案 0 :(得分:0)
尝试加载没有标题的文件并应用自定义文件,它应该看起来像这样:
git ls-remote
a72db09adb82fdf2452d2ecb9ca2d4a48ad86d89 HEAD
628160ed4c92d0c6ea46db77cb94d89e3748dcad refs/heads/Database
a72db09adb82fdf2452d2ecb9ca2d4a48ad86d89 refs/heads/Interface
a72db09adb82fdf2452d2ecb9ca2d4a48ad86d89 refs/heads/master