在数据分析与科学中,Excel 文件是一种广泛使用的数据存储格式。Pandas 提供了 ExcelWriter
类,使你能够高效地将多个 DataFrame 写入同一个 Excel 文件,甚至是写入不同的工作表中。这篇博客将详细讲解 ExcelWriter
类,包括其作用、使用方法、参数详解、示例代码以及注意事项。
🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:
gylzbk
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【Pandas】pandas.ExcelWriter详解与实战应用:高效写入Excel文件
1.简介 📘
在数据分析与科学中,Excel 文件是一种广泛使用的数据存储格式。Pandas 提供了 ExcelWriter
类,使你能够高效地将多个 DataFrame 写入同一个 Excel 文件,甚至是写入不同的工作表中。这篇博客将详细讲解 ExcelWriter
类,包括其作用、使用方法、参数详解、示例代码以及注意事项。
2. 什么是ExcelWriter 📋
ExcelWriter
是 Pandas 提供的一个类,用于将 DataFrame 数据写入 Excel 文件。它支持 Excel 2003 (xls) 和 Excel 2007 及以上 (xlsx) 文件格式,并允许你高效地操作多个工作表。
3. 为什么使用ExcelWriter🤔
ExcelWriter
类有以下几个优点:
- 便捷性:可以轻松将 DataFrame 数据写入多个工作表,适合处理复杂的 Excel 文件。
- 灵活性:提供了丰富的参数,可以自定义输出格式,指定工作表名等。
- 高效性:通过一次性写入多个 DataFrame 提高了写入效率。
4.ExcelWriter 类详解 🔍
4.1类定义 🖊️
pandas.ExcelWriter(path, engine=None, date_format=None, datetime_format=None, mode='w', storage_options=None, if_sheet_exists=None, engine_kwargs=None, **kwargs)
4.2 参数解释 📝
-
path
: 类型:str、path object 或 file-like object。说明:目标文件的路径或文件对象。 -
engine
: 类型:str,默认 None。说明:写入文件所使用的引擎,例如openpyxl
。 -
date_format
: 类型:str,默认 None。说明:日期列的格式。 -
datetime_format
: 类型:str,默认 None。说明:日期时间列的格式。 -
mode
: 类型:str,默认 ‘w’。说明:文件打开模式。'w'
表示写入模式,'a'
表示追加模式。 -
storage_options
: 类型:dict,默认 None。说明:用于存储连接的额外选项。 -
if_sheet_exists
: 类型:str,默认 None。说明:如果工作表已经存在,应采取的操作,包括error
、new
、replace
或none
。 -
engine_kwargs
: 类型:dict,默认 None。说明:传递给引擎的其它关键字参数。
其他参数:Pandas 的 ExcelWriter
类还支持其他参数,更灵活地进行数据写入。
4.3 返回值 📤
无返回值。ExcelWriter
类用于上下文管理,在 with
语句中创建一个 ExcelWriter 对象,并在块结束后自动关闭。
4.4 示例代码 👨💻
4.4.1 创建并保存多个工作表的 Excel 文件 💾
首先,我们创建几个 DataFrame,并将它们保存到同一个 Excel 文件的不同工作表中。
import pandas as pd
# 创建示例 DataFrame
df1 = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]
})
df2 = pd.DataFrame({
'Department': ['HR', 'Finance', 'Marketing'],
'Location': ['New York', 'San Francisco', 'Los Angeles']
})
# 使用 ExcelWriter 保存文件
with pd.ExcelWriter('example.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet1', index=False)
df2.to_excel(writer, sheet_name='Sheet2', index=False)
print("DataFrames 已保存到 Excel 文件 'example.xlsx'")
4.4.2 保存到同一个工作表 📂
有时候我们希望在追加模式下将多个 DataFrame 保存到同一个工作表。
with pd.ExcelWriter('example_append.xlsx', mode='a', if_sheet_exists='overlay') as writer:
df1.to_excel(writer, sheet_name='Sheet1', startrow=0, index=False)
df2.to_excel(writer, sheet_name='Sheet1', startrow=3, index=False)
print("DataFrames 已追加保存到 Excel 文件 'example_append.xlsx'")
4.5 进阶使用 🚀
4.5.1 使用自定义的日期格式 💨
我们可以设置自定义的日期和日期时间格式。
df_date = pd.DataFrame({
'Date': pd.to_datetime(['2023-01-01', '2023-01-02']),
'Value': [10, 20]
})
# 使用自定义日期格式保存文件
with pd.ExcelWriter('date_format_example.xlsx', date_format='YYYY-MM-DD', datetime_format='YYYY-MM-DD HH:MM:SS') as writer:
df_date.to_excel(writer, sheet_name='DateSheet', index=False)
print("DataFrame 已使用自定义日期格式保存到 Excel 文件 'date_format_example.xlsx'")
4.5.2 指定写入的引擎 🌐
我们可以指定所使用的引擎来保存文件。
with pd.ExcelWriter('example_openpyxl.xlsx', engine='openpyxl') as writer:
df1.to_excel(writer, sheet_name='Sheet1', index=False)
print("DataFrame 已使用指定引擎保存到 Excel 文件 'example_openpyxl.xlsx'")
5. 注意事项 ⚠️
- 文件路径:确保提供的文件路径是正确的,否则将抛出错误。
- 引擎选择:确保所使用的引擎兼容相应的Excel文件格式。例如,openpyxl 用于 xlsx 文件,而 xlwt 用于 xls 文件。
- 模式选择:在追加模式下(
mode='a'
),务必小心确保不会覆盖已有数据,除非这是预期的行为。
6. 参考资料 📚
7. 结论 🏁
Pandas 的 ExcelWriter
类是一个强大而灵活的工具,能高效地将多个 DataFrame 写入同一个 Excel 文件,并支持多种格式和选项。通过本文的详细讲解和示例,相信你已经掌握了 ExcelWriter
类的基础使用方法和进阶技巧。