Pandas DataFrame DataFrame.to_excel() 函数
Jinku Hu
2023年1月30日
Pandas
Pandas DataFrame
-
pandas.DataFrame.to_excel()语法 -
示例代码:Pandas
DataFrame.to_excel() -
示例代码:Pandas
DataFrame.to_excel()和ExcelWriter -
示例代码:Pandas
DataFrame.to_excel来追加到一个现有的 Excel 文件中 -
示例代码:Pandas
DataFrame.to_excel写入 Excel 中的多页 -
示例代码: 带有参数
header的 PandasDataFrame.to_excel -
示例代码: 当
index=False时的 PandasDataFrame.to_excel -
示例代码:Pandas
DataFrame.to_excel参数为index_label -
示例代码:Pandas
DataFrame.to_excel与float_format参数 -
示例代码:Pandas
DataFrame.to_excel参数为freeze_panes
Python Pandas DataFrame.to_excel(values) 函数将 DataFrame 数据转储到 Excel 文件中,单页或多页中。
pandas.DataFrame.to_excel() 语法
DataFrame.isin(
excel_writer,
sheet_name="Sheet1",
na_rep="",
float_format=None,
columns=None,
header=True,
index=True,
index_label=None,
startrow=0,
startcol=0,
engine=None,
merge_cells=True,
encoding=None,
inf_rep="inf",
verbose=True,
freeze_panes=None,
)
参数
excel_writer |
Excel 文件路径或现有的 pandas.ExcelWriter |
sheet_name |
DataFrame 转储到的工作表名称 |
na_rep |
空值的表示方法 |
float_format |
浮点数的格式 |
header |
指定生成的 Excel 文件的标题 |
index |
如果为 True,将 DataFrame index 写入 Excel |
index_label |
索引列的列标签 |
startrow |
将数据写入 Excel 的左上角单元格行。 默认为 0 |
startcol |
将数据写入 Excel 的左上角单元格。 默认为 0 |
engine |
可选参数,用于指定要使用的引擎。openyxl 或 xlswriter |
merge_cells |
合并 MultiIndex 到合并的单元格中 |
encoding |
输出 Excel 文件的编码。只有当使用 xlwt 写入器时才需要,其他写入器原生支持 Unicode |
inf_rep |
无限大的表示方法。默认为 inf |
verbose |
如果为 True,错误日志包含更多的信息 |
freeze_panes |
指定冻结窗格的最底部和最右侧。它是基于一的,但不是基于零的 |
返回值
None
示例代码:Pandas DataFrame.to_excel()
import pandas as pd
dataframe= pd.DataFrame({'Attendance': [60, 100, 80, 78, 95],
'Name': ['Olivia', 'John', 'Laura', 'Ben', 'Kevin'],
'Marks': [90, 75, 82, 64, 45]})
dataframe.to_excel('test.xlsx')
调用者 DataFrame 为
Attendance Name Marks
0 60 Olivia 90
1 100 John 75
2 80 Laura 82
3 78 Ben 64
4 95 Kevin 45
test.xlsx 文件被创建。

示例代码:Pandas DataFrame.to_excel() 和 ExcelWriter
上面的例子使用文件路径作为 excel_writer,我们也可以使用 pandas.Excelwriter 来指定 DataFrame 转储的 excel 文件。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer)
示例代码:Pandas DataFrame.to_excel 来追加到一个现有的 Excel 文件中
import pandas as pd
import openpyxl
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx", mode="a", engine="openpyxl") as writer:
dataframe.to_excel(writer, sheet_name="new")
我们应该指定引擎为 openpyxl,而不是默认的 xlsxwriter;否则,我们会得到 xlswriter 不支持 append 模式的错误信息。
ValueError: Append mode is not supported with xlsxwriter!
因为 openpyxl 不属于 pandas 的一部分,所以要安装和导入。
pip install openpyxl

示例代码:Pandas DataFrame.to_excel 写入 Excel 中的多页
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer, sheet_name="Sheet1")
dataframe.to_excel(writer, sheet_name="Sheet2")
它将 DataFrame 对象转储到 Sheet1 和 Sheet2。
如果你指定了 columns 参数,你也可以将不同的数据写入多个表。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer, columns=["Name", "Attendance"], sheet_name="Sheet1")
dataframe.to_excel(writer, columns=["Name", "Marks"], sheet_name="Sheet2")
示例代码: 带有参数 header 的 Pandas DataFrame.to_excel
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer, header=["Student", "First Name", "Score"])
在创建的 Excel 文件中,默认的标题与 DataFrame 的列名相同。header 参数指定新的标题,以取代默认的标题。

示例代码: 当 index=False 时的 Pandas DataFrame.to_excel
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer, index=False)
index = False 指定 DataFrame.to_excel() 生成一个没有头行的 Excel 文件。
示例代码:Pandas DataFrame.to_excel 参数为 index_label
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer, index_label="id")
index_label='id'设置索引列的列名为 id。

示例代码:Pandas DataFrame.to_excel 与 float_format 参数
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer, float_format="%.1f")
float_format="%.1f"指定浮点数小数点后有两位。
示例代码:Pandas DataFrame.to_excel 参数为 freeze_panes
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Marks": [90, 75, 82, 64, 45],
}
)
with pd.ExcelWriter("test.xlsx") as writer:
dataframe.to_excel(writer, freeze_panes=(1, 1))
freeze_panes=(1,1) 指定 excel 文件有冻结的顶行和冻结的第一列。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Jinku Hu
