尝试读取较大的excel文件(.xlsx)并将其某些选项卡/表格写入较小的excel文件时,我遇到了很多麻烦。
在一个类中,我得到了数据帧的字典。关键是数据框来自的相应工作表/标签,键入字符串。该值是实际的数据框,其所有原始列都为DataFrame。在此类中,我从原始excel文件中提取某些数据框。
提取选定的数据框后,我可以打印出key:value对,一切看起来都很好。但是,我相信我的真正问题是将实际数据写入1个excel文件。我只得到第一个数据框,没有它来自的工作表名称(它成为默认的“ Sheet1”),而没有其他内容。
以下是将我的字典写到Excel文件中的代码:
def frames_to_excel(self, df_dict, path):
"""Write dictionary of dataframes to separate sheets, within
1 file."""
writer = pd.ExcelWriter(path, engine='xlsxwriter')
for tab_name, dframe in df_dict.items():
dframe.to_excel(writer, sheet_name=tab_name)
writer.save()
-“路径”是将整个字典写入xlsx文件的选择输出路径。 -“ df_dict”是数据帧的字典。
答案 0 :(得分:0)
我很困惑。我的错误根本不在我发布的代码中,也不是解析原始excel文件中数据的任何类。问题是这行代码:
excel_path = re.sub(r"(?i)original|_original", "_custom", os.path.basename(excel_path))
通过执行os库中的basename函数,我只使用了文件名,而不是整个完整路径:
writer = pd.ExcelWriter(excel_path,engine ='xlsxwriter')
-因此,我没有将正确的数据写入完整路径,并且大约在5天前,我正在查看程序输出中的旧数据。谢谢大家的帮助。
修复(使用您期望的正确完整路径):
excel_path = re.sub(r"(?i)original|_original", "_custom", excel_path)