13. Pandas :使用 to_excel 方法写入 Excel文件

devtools/2025/3/14 9:16:47/

一 to_excel 方法的相关参数

用它来指定要将 DataFrame 写入哪些工作表的哪些单元格,以及是否需要包含列标题和 DataFrame 索引。如何处理特殊值(如 np.nan 和 np.inf)。

1.指定工作表和单元格

sheet_name:指定将 DataFrame 写入的工作表名称。若不存在,pandas 会创建一个新的工作表。

python"> sheet_name="MySheet",   # 写入的工作表名称

startrow 和 startcol:指定从哪个行和列开始写入数据。在工作表中指定一个特定的位置来放置数据。

python">startrow=2,             # 从第三行开始写入(索引从0开始)
startcol=1,             # 从第二列开始写入(索引从0开始)

2.是否包含列标题和索引

header:布尔值,指定是否写入列标题。默认是 True

index:布尔值,指定是否写入行索引。默认是 True

python">header=True,            # 包含列标题
index=False,            # 不包含行索引

3.处理特殊值

na_rep:指定如何将 NaN 值表示在 Excel 中。默认是空字符串 ""

inf_rep:指定如何将正无穷大(np.inf)和负无穷大(-np.inf)表示在 Excel 中。默认是 "inf" 和 "-inf"

python">na_rep="NA",            # 将 NaN 表示为 "NA"
inf_rep="Infinity"      # 将 inf 和 -inf 表示为 "Infinity"

4.示例代码1

python">import pandas as pd
import numpy as np
import datetime as dtdata=[[dt.datetime(2020,1,1, 10, 13), 2.222, 1, True],
[dt.datetime(2020,1,2), np.nan, 2, False],
[dt.datetime(2020,1,2), np.inf, 3, True]]df = pd.DataFrame(data=data,
columns=["Dates", "Floats", "Integers", "Booleans"])df.index.name="index"
print(df)df.to_excel("written_with_pandas.xlsx", 
sheet_name="Output",
startrow=1, 
startcol=1, 
index=True, 
header=True,
na_rep="<NA>", 
inf_rep="<INF>")

1.导入库 

python">import datetime as dt

datetime:用于处理日期和时间的库。

2.创建数据

python">data = [[dt.datetime(2020, 1, 1, 10, 13), 2.222, 1, True],[dt.datetime(2020, 1, 2), np.nan, 2, False],[dt.datetime(2020, 1, 2), np.inf, 3, True]
]

data 是一个列表,其中每个子列表代表 DataFrame 的一行。

每一行包含四个值:一个日期时间对象、一个浮点数、一个整数和一个布尔值。

第二行包含一个 NaN 值(np.nan),表示缺失数据。

第三行包含一个正无穷大值(np.inf)。

3.创建 DataFrame

python">df = pd.DataFrame(data=data, 
columns=["Dates", "Floats", "Integers", "Booleans"])df.index.name = "index"

4.写入 Excel 文件

python">df.to_excel("written_with_pandas.xlsx",sheet_name="Output",startrow=1,startcol=1,index=True,header=True,na_rep="<NA>",inf_rep="<INF>"
)

to_excel 方法用于将 DataFrame 写入 Excel 文件。

"written_with_pandas.xlsx":输出的 Excel 文件名。

sheet_name="Output":将数据写入名为 "Output" 的工作表。

startrow=1 和 startcol=1:数据将从 Excel 文件的第二行和第二列开始写入(索引从 0 开始)。

index=True:包括 DataFrame 的索引。

header=True:包括列标题。

na_rep="<NA>":将 NaN 值替换为 "<NA>"

inf_rep="<INF>":将 np.inf 和 -np.inf 替换为 "<INF>"

5.示例代码2

用 with

python">import pandas as pd
import numpy as np# 创建一个示例 DataFrame
data = {'A': [1, 2, np.nan, 4],'B': [np.inf, 5, 6, -np.inf],'C': [7, 8, 9, 10]
}
df = pd.DataFrame(data)# 将 DataFrame 写入 Excel 文件
with pd.ExcelWriter("output.xlsx") as writer:df.to_excel(writer,sheet_name="MySheet",   # 写入的工作表名称startrow=2,             # 从第三行开始写入(索引从0开始)startcol=1,             # 从第二列开始写入(索引从0开始)header=True,            # 包含列标题index=False,            # 不包含行索引na_rep="NA",            # 将 NaN 表示为 "NA"inf_rep="Infinity"      # 将 inf 和 -inf 表示为 "Infinity")


二 to_excel 方法和 ExcelClass 类

可以将多个 DataFrame 写入同一张或多张工作表。

分 3 次将同一个 DataFrame 写入工作表,前两次写入了工作表 1 的两个位置,第三次写入了工作表 2:

将 ExcelClass 用作了上下文管理器,因此当文件离开上下文管理器时(也就是离开由缩进定义的代码块时)会被自动写入磁盘。如果不像这样写的话,则必须显式地调用 writer.save() 。


http://www.ppmy.cn/devtools/166980.html

相关文章

STM32F407 cubeIDE Bootloader APP 如何写

一、bootloader 代码如下&#xff1a; #define FLASH_JUMP_ADDR (0x0800c000) /* USER CODE END PD *//* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ----------…

高效数据分析实战指南:Python零基础入门

高效数据分析实战指南 —— 以Python为基石&#xff0c;构建您的数据分析核心竞争力 大家好&#xff0c;我是kakaZhui&#xff0c;从事数据、人工智能算法多年&#xff0c;精通Python数据分析、挖掘以及各种深度学习算法。一直以来&#xff0c;我都发现身边有很多在传统行业从…

工作记录 2017-01-06

工作记录 2017-01-06 序号 工作 相关人员 1 协助BPO进行Billing的工作。 修改CSV、EDI837的导入。 修改邮件上的问题。 更新RD服务器。 郝 修改的问题&#xff1a; 1、 In “Full Job Summary” (patient info.), sometime, the Visit->Facility is missed, then …

RHCE(RHCSA复习:虚拟的安装和设置)

一、安装虚拟机&#xff08;见截图&#xff09; 虚拟机放大&#xff1a;ctrlshift加号 虚拟机缩小&#xff1a;ctrl减号 连接xshell的命令&#xff1a; ssh root(加上自己的ip)虚拟机关机的命令&#xff1a; systemctl poweroff 或者init 0&#xff08;该命令很古老&#xff…

LeetCode:93. 复原 IP 地址(DFS Java)

目录 93. 复原 IP 地址 题目描述&#xff1a; 实现代码与解析&#xff1a; DFS 原理思路&#xff1a; 93. 复原 IP 地址 题目描述&#xff1a; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xf…

阿里云魔笔低代码应用开发平台快速搭建教程

AI低代码&#xff0c;大模型时代应用开发新范式 什么是魔笔 介绍什么是魔笔低代码应用开发平台。 魔笔是一款面向全端&#xff08;Web、H5、全平台小程序、App&#xff09;场景的模型驱动低代码开发平台&#xff0c;提供一站式的应用全生命周期管理&#xff0c;包括可视化开发…

Spring 事务失效的 8 种场景!

在日常工作中&#xff0c;如果对Spring的事务管理功能使用不当&#xff0c;则会造成Spring事务不生效的问题。而针对Spring事务不生效的问题&#xff0c;也是在跳槽面试中被问的比较频繁的一个问题。 点击上方卡片关注我 今天&#xff0c;我们就一起梳理下有哪些场景会导致Sp…

Flutter 常用组件大全

Flutter 常用组件大全 Flutter 提供了丰富的组件来构建 UI&#xff0c;以下是常见的组件&#xff0c;按 功能类别 分类。 1️⃣ 基础布局组件 组件作用示例Container盒子容器&#xff0c;支持装饰、边距、大小Container(width: 100, height: 100, color: Colors.red)Padding内…