Pandas DataFrame DataFrame.to_excel() 函数
Jinku Hu
2023年1月30日
-
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 文件有冻结的顶行和冻结的第一列。
作者: Jinku Hu