如何编写通用代码将多个DataFrame导出为与其名称对应的CSV文件
原有代码问题定位
- 方法调用错误:pandas DataFrame 导出CSV的内置方法为
to_csv(),不存在to_save()方法 - 文件名生成逻辑错误:循环中直接用数字索引拼接文件名,没有关联每个DataFrame对应的原始命名
- 列表存储逻辑缺陷:原列表仅存入DataFrame对象本身,未同步存储每个对象对应的名称信息,无法直接生成同名文件
可直接运行的通用实现
方案1:字典映射存储(最稳定,推荐使用)
把文件名和对应DataFrame做成键值对映射,从根源避免变量名读取出错的问题:
# 构建文件名与DataFrame的映射关系 dframe_mapping = { "economy": economy, "finance": finance, "language": language } # 批量导出并输出匹配要求的日志 for file_name, df in dframe_mapping.items(): # index=False 避免导出时把DataFrame行索引存入CSV第一列 df.to_csv(f"{file_name}.csv", index=False) print(f'file saved: "{file_name}.csv"')
方案2:列表存元组保留名称
如果倾向于使用列表存储结构,可在列表中存入(文件名, DataFrame)格式的元组:
dframe_list = [ ("economy", economy), ("finance", finance), ("language", language) ] for file_name, df in dframe_list: df.to_csv(f"{file_name}.csv", index=False) print(f'file saved: "{file_name}.csv"')
注意:不推荐通过代码反向解析DataFrame对应的变量名来生成文件名,同一DataFrame对象可能被多个变量引用,解析结果存在不确定性。
内容的提问来源于stack exchange,提问作者asd
相关产品推荐
相关产品推荐

