我想解析多个.xlsx文件,这些文件仅读取特定的工作表名称“目标”(文件名格式:“ name_20190626.xlsx”,文件名中带有版本日期),从文件名中提取版本日期,添加此日期即20190626作为每个文件中每一行的新列,并创建一个包含所有.xlsx文件中选定列[Col 0,1,-1]的数据框。
我设法打开正确的工作表,提取日期并加载所需的列,这是当我尝试添加新列时遇到的错误:“ ValueError:值的长度与索引的长度不匹配”。
all_data = pd.DataFrame()
for f in glob.glob("01_Historical_files/*.xlsx"):
print(f)
""" df = pd.read_excel(f) """
date = re.findall("(\d{8})", f)
print(date)
xl = pd.ExcelFile(f)
df = xl.parse('STATIC').iloc[:,[0,1,-1]]
df.assign(score_date = date)
df.head()
all_data = all_data.append(df,ignore_index=True)
预期的输出(所有行):
答案 0 :(得分:0)
我想我找到了一种使它起作用的方法-仍对实现它的更好方法持开放态度;)
all_data = pd.DataFrame()
for f in glob.glob("01_Historical_files/*.xlsx"):
print(f)
""" df = pd.read_excel(f) """
xl = pd.ExcelFile(f)
date2 = xl.parse('SOURCES >>>').iloc[1,1]
print(date2)
df = xl.parse('STATIC').iloc[:,[0,1,-1]]
""" Looping across all rows within the df frame """
for i, row in df.iterrows():
"""print (i) """
df['score_date'] = date2
df.head()
all_data = all_data.append(df,ignore_index=True)