PythonDataFrame导入多个Excel文件-坚持将文件名添加到Dataframe
我正在尝试导入给定文件夹中的所有文件,并且所有文件中的一个工作表信息应转到一个数据帧-即完成 我现在遇到的问题是,从一个工作簿导入每个数据帧时,在附加到该工作表的主数据帧之前,此数据帧应与已导入的文件名连接PythonDataFrame导入多个Excel文件-坚持将文件名添加到Dataframe,python,excel,pandas,Python,Excel,Pandas,我正在尝试导入给定文件夹中的所有文件,并且所有文件中的一个工作表信息应转到一个数据帧-即完成 我现在遇到的问题是,从一个工作簿导入每个数据帧时,在附加到该工作表的主数据帧之前,此数据帧应与已导入的文件名连接 import os import pandas as pd path = "C:/backup/vp/apr 11 2018 and related files/All Files/" #print(os.listdir(path)) all_files = [path+file for
import os
import pandas as pd
path = "C:/backup/vp/apr 11 2018 and related files/All Files/"
#print(os.listdir(path))
all_files = [path+file for file in os.listdir(path)]
#print(all_files)
all_files = [file for file in os.listdir(path)]
#print(all_files)
accepted_extensions = ["xlsx"]
xlsx_extension_file1 = [fn for fn in os.listdir(path) if fn.split(".")[-1] in accepted_extensions]
#print(xlsx_extension_file)
xlsx_extension_file = [path+fn for fn in os.listdir(path) if fn.split(".")[-1] in accepted_extensions]
#print(xlsx_extension_file)
df1= pd.DataFrame()
df2= pd.DataFrame()
for file in xlsx_extension_file:
print(file)
data = pd.ExcelFile(file)
#df= pd.DataFrame()
try:
df1 = df1.append(data.parse("vInfo",header=0),ignore_index=True)
#df1frame('FileName')=df1.fill
#df1 = df1[df1['Host'].str.contains('nl03esx141ccpv1')]
df2 = df1.append(data.parse("vDatastore",header=0),ignore_index=True)
#df2 = df2[df2['Name'].str.contains('bb2')]
#df1['filename'] = os.path.basename(file)
#df1.append(df1['filename'])
#df2['filename'] = os.path.basename(file)
#df2.append(df2['filename'])
#print(frame.head())
except:
pass
#print(df1)
#print(df2)
writer = pd.ExcelWriter('output1.xlsx')
df1.to_excel(writer, 'vInfo')
df2.to_excel(writer, 'vDatastore')
#df1.to_html('html14apr2018vInfo.html')
input()
考虑为文件名添加列。此外,考虑使用列表来收集所有数据帧,然后在端部连接在一起,而不是在循环中扩展相同的主数据文件:
...
df1_list = []
df2_list = []
for file in xlsx_extension_file:
print(file)
data = pd.ExcelFile(file)
try:
df1_list.append(data.parse("vInfo",header=0).assign(filename=file))
df2_list.append(data.parse("vDatastore",header=0).assign(filename=file))
except:
pass
df1 = pd.concat(df1_list, ignore_index = True)
df2 = pd.concat(df2_list, ignore_index = True)
...
考虑为文件名添加列。此外,考虑使用列表来收集所有数据帧,然后在端部连接在一起,而不是在循环中扩展相同的主数据文件:
...
df1_list = []
df2_list = []
for file in xlsx_extension_file:
print(file)
data = pd.ExcelFile(file)
try:
df1_list.append(data.parse("vInfo",header=0).assign(filename=file))
df2_list.append(data.parse("vDatastore",header=0).assign(filename=file))
except:
pass
df1 = pd.concat(df1_list, ignore_index = True)
df2 = pd.concat(df2_list, ignore_index = True)
...