如何将DataFrame按city列拆分保存至Excel不同工作表?
按City分组将DataFrame写入同一Excel的不同工作表
不需要手动创建工作表,用pandas的ExcelWriter即可动态实现多工作表写入,具体步骤如下:
1. 安装依赖库
根据你要保存的Excel格式安装对应引擎:
- 保存为
.xlsx格式:执行pip install openpyxl - 保存为
.xls格式:执行pip install xlwt
2. 实现代码
import pandas as pd # 假设你的DataFrame已定义为df output_file = path_to_output + 'city_data.xlsx' # 创建Excel写入对象,指定对应引擎 with pd.ExcelWriter(output_file, engine='openpyxl') as writer: # 按city列分组,遍历每个城市的子数据集 for city_name, group_data in df.groupby('city'): # 将子数据集写入以城市名命名的工作表 group_data.to_excel(writer, sheet_name=city_name, index=False)
关键说明
pd.ExcelWriter:作为多工作表写入的核心对象,with语句会自动处理文件的打开与关闭,避免资源泄漏df.groupby('city'):按city列拆分原DataFrame,得到每个城市对应的独立子数据集sheet_name=city_name:动态创建以城市名称命名的工作表,无需提前手动创建
注意事项
- Excel工作表名称不能包含
/ \ : * ? " < > |特殊字符,如果你的city列存在这类字符,需要先做清洗,例如:city_name = city_name.replace('/', '_') - 如果需要保留原DataFrame的索引,去掉代码中的
index=False参数
内容的提问来源于stack exchange,提问作者bravopapa
相关产品推荐
相关产品推荐

