如何设计网站导航,网页设计学科门类是啥,帮做试卷的网站,施工企业质量管理Pandas 提供了丰富的 Excel 文件操作功能#xff0c;帮助我们方便地读取和写入 .xls 和 .xlsx 文件#xff0c;支持多表单、索引、列选择等复杂操作#xff0c;是数据分析中必备的工具。
操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件#xff0c;返回 DataF… Pandas 提供了丰富的 Excel 文件操作功能帮助我们方便地读取和写入 .xls 和 .xlsx 文件支持多表单、索引、列选择等复杂操作是数据分析中必备的工具。
操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件返回 DataFrame将 DataFrame 写入 ExcelDataFrame.to_excel()将 DataFrame 写入 Excel 文件加载 Excel 文件pd.ExcelFile()加载 Excel 文件并访问多个表单使用 ExcelWriter 写多个表单pd.ExcelWriter()写入多个 DataFrame 到同一 Excel 文件的不同表单
1 读取 Excel 文件 pd.read_excel() 方法用于从 Excel 文件中读取数据并加载为 DataFrame。它支持读取 .xls 和 .xlsx 格式的文件。语法格式如下
pandas.read_excel(io, sheet_name0, *, header0, namesNone, index_colNone, usecolsNone, dtypeNone, engineNone, convertersNone, true_valuesNone, false_valuesNone, skiprowsNone, nrowsNone, na_valuesNone, keep_default_naTrue, na_filterTrue, verboseFalse, parse_datesFalse, date_parserno_default, date_formatNone, thousandsNone, decimal., commentNone, skipfooter0, storage_optionsNone, dtype_backendno_default, engine_kwargsNone)io这是必需的参数指定了要读取的 Excel 文件的路径或文件对象。sheet_name0指定要读取的工作表名称或索引。默认为0即第一个工作表。header0指定用作列名的行。默认为0即第一行。namesNone用于指定列名的列表。如果提供将覆盖文件中的列名。index_colNone指定用作行索引的列。可以是列的名称或数字。usecolsNone指定要读取的列。可以是列名的列表或列索引的列表。dtypeNone指定列的数据类型。可以是字典格式键为列名值为数据类型。engineNone指定解析引擎。默认为Nonepandas 会自动选择。convertersNone用于转换数据的函数字典。true_valuesNone指定应该被视为布尔值True的值。false_valuesNone指定应该被视为布尔值False的值。skiprowsNone指定要跳过的行数或要跳过的行的列表。nrowsNone指定要读取的行数。na_valuesNone指定应该被视为缺失值的值。keep_default_naTrue指定是否要将默认的缺失值例如NaN解析为NA。na_filterTrue指定是否要将数据转换为NA。verboseFalse指定是否要输出详细的进度信息。parse_datesFalse指定是否要解析日期。date_parserno_default用于解析日期的函数。date_formatNone指定日期的格式。thousandsNone指定千位分隔符。decimal.指定小数点字符。commentNone指定注释字符。skipfooter0指定要跳过的文件末尾的行数。storage_optionsNone用于云存储的参数字典。dtype_backendno_default指定数据类型后端。engine_kwargsNone传递给引擎的额外参数字典。 本文以 runoob_pandas_data.xlsx 为例下载链接https://static.jyshare.com/download/runoob_pandas_data.xlsx
import pandas as pd# 读取 data.xlsx 文件
df pd.read_excel(runoob_pandas_data.xlsx)# 打印读取的 DataFrame
print(df)read_excel 默认读取第一个表单sheet_name0假设 data.xlsx 文件中只有一个表单读取后的数据会存储在一个 DataFrame 中。如果 data.xlsx 文件中有多个表单可以通过指定 sheet_name 来读取特定表单的数据例如 pd.read_excel(data.xlsx, sheet_nameSheet1)。
import pandas as pd# 读取默认的第一个表单
df pd.read_excel(data.xlsx)
print(df)# 读取指定表单的内容表单名称
df pd.read_excel(data.xlsx, sheet_nameSheet1)
print(df)# 读取多个表单返回一个字典
dfs pd.read_excel(data.xlsx, sheet_name[Sheet1, Sheet2])
print(dfs)# 自定义列名并跳过前两行
df pd.read_excel(data.xlsx, headerNone, names[A, B, C], skiprows2)
print(df)2 将 DataFrame 写入 Excel 文件 to_excel() 方法用于将 DataFrame 写入 Excel 文件支持 .xls 和 .xlsx 格式。
DataFrame.to_excel(excel_writer, *, sheet_nameSheet1, na_rep, float_formatNone, columnsNone, headerTrue, indexTrue, index_labelNone, startrow0, startcol0, engineNone, merge_cellsTrue, inf_repinf, freeze_panesNone, storage_optionsNone, engine_kwargsNone)excel_writer这是必需的参数指定了要写入的 Excel 文件路径或文件对象。sheet_nameSheet1指定写入的工作表名称默认为 Sheet1。na_rep指定在 Excel 文件中表示缺失值NaN的字符串默认为空字符串。float_formatNone指定浮点数的格式。如果为 None则使用 Excel 的默认格式。columnsNone指定要写入的列。如果为 None则写入所有列。headerTrue指定是否写入列名作为第一行。如果为 False则不写入列名。indexTrue指定是否写入索引作为第一列。如果为 False则不写入索引。index_labelNone指定索引列的标签。如果为 None则不写入索引标签。startrow0指定开始写入的行号默认从第0行开始。startcol0指定开始写入的列号默认从第0列开始。engineNone指定写入 Excel 文件时使用的引擎默认为 Nonepandas 会自动选择。merge_cellsTrue指定是否合并单元格。如果为 True则合并具有相同值的单元格。inf_repinf指定在 Excel 文件中表示无穷大值的字符串默认为 inf。freeze_panesNone指定冻结窗格的位置。如果为 None则不冻结窗格。storage_optionsNone用于云存储的参数字典。engine_kwargsNone传递给引擎的额外参数字典。
import pandas as pd# 创建一个简单的 DataFrame
df pd.DataFrame({Name: [Alice, Bob, Charlie],Age: [25, 30, 35],City: [New York, Los Angeles, Chicago]
})# 将 DataFrame 写入 Excel 文件写入 Sheet1 表单
df.to_excel(output.xlsx, sheet_nameSheet1, indexFalse)# 写入多个表单使用 ExcelWriter
with pd.ExcelWriter(output.xlsx) as writer:df.to_excel(writer, sheet_nameSheet1, indexFalse)
df.to_excel(writer, sheet_nameSheet2, indexFalse)3 加载 Excel 文件 ExcelFile 是一个用于读取 Excel 文件的类它可以处理多个表单并在不重新打开文件的情况下访问其中的数据。
excel_file pd.ExcelFile(data.xlsx)
方法功能描述sheet_names返回文件中所有表单的名称列表parse(sheet_name)解析指定表单并返回一个 DataFrameclose()关闭文件以释放资源
import pandas as pd# 使用 ExcelFile 加载 Excel 文件
excel_file pd.ExcelFile(data.xlsx)# 查看所有表单的名称
print(excel_file.sheet_names)# 读取指定的表单
df excel_file.parse(Sheet1)
print(df)# 关闭文件
excel_file.close()4 写入 Excel 文件 ExcelWriter 是 pandas 提供的一个类用于将 DataFrame 或 Series 对象写入 Excel 文件。使用 ExcelWriter你可以在一个 Excel 文件中写入多个工作表并且可以更灵活地控制写入过程。
pandas.ExcelWriter(path, engineNone, date_formatNone, datetime_formatNone, modew, storage_optionsNone, if_sheet_existsNone, engine_kwargsNone)
path这是必需的参数指定了要写入的 Excel 文件的路径、URL 或文件对象。可以是本地文件路径、远程存储路径如 S3、URL 链接或已打开的文件对象。engine这是一个可选参数用于指定写入 Excel 文件的引擎。如果为 None则 pandas 会自动选择一个可用的引擎默认优先选择 openpyxl如果不可用则选择其他可用引擎。常见的引擎包括 openpyxl用于 .xlsx 文件、xlsxwriter提供高级格式化和图表功能、odf用于 OpenDocument 格式如 .ods等。date_format这是一个可选参数指定写入 Excel 文件中日期的格式字符串例如 YYYY-MM-DD。datetime_format这是一个可选参数指定写入 Excel 文件中日期时间对象的格式字符串例如 YYYY-MM-DD HH:MM:SS。mode这是一个可选参数默认为 w表示写入模式。如果设置为 a则表示追加模式向现有文件中添加数据仅支持部分引擎如 openpyxl。storage_options这是一个可选参数用于指定与存储后端连接的额外选项例如认证信息、访问权限等适用于写入远程存储如 S3、GCS。if_sheet_exists这是一个可选参数默认为 error指定如果工作表已经存在时的行为。选项包括 error抛出错误、new创建一个新工作表、replace替换现有工作表的内容、overlay在现有工作表上覆盖写入。engine_kwargs这是一个可选参数用于传递给引擎的其他关键字参数。这些参数会传递给相应引擎的函数例如 xlsxwriter.Workbook(file, **engine_kwargs) 或 openpyxl.Workbook(**engine_kwargs) 等。
4.1 ExcelWriter 基本语法
with ExcelWriter(output.xlsx) as writer:df.to_excel(writer, sheet_nameSheet1) 你可以使用同一个 ExcelWriter 对象将不同的 DataFrame 写入同一个 Excel 文件的不同工作表。
import pandas as pddf1 pd.DataFrame([[AAA, BBB]], columns[Spam, Egg])
df2 pd.DataFrame([[ABC, XYZ]], columns[Foo, Bar])
with pd.ExcelWriter(path_to_file.xlsx) as writer:df1.to_excel(writer, sheet_nameSheet1)df2.to_excel(writer, sheet_nameSheet2)4.2 设置日期格式或日期时间格式
from datetime import date, datetimeimport pandas as pddf pd.DataFrame([[date(2014, 1, 31), date(1999, 9, 24)],[datetime(1998, 5, 26, 23, 33, 4), datetime(2014, 2, 28, 13, 5, 13)],],index[Date, Datetime],columns[X, Y],
)
with pd.ExcelWriter(path_to_file.xlsx,date_formatYYYY-MM-DD,datetime_formatYYYY-MM-DD HH:MM:SS
) as writer:df.to_excel(writer)4.3 向现有 Excel 文件追加内容
with pd.ExcelWriter(path_to_file.xlsx, modea, engineopenpyxl) as writer:df.to_excel(writer, sheet_nameSheet3) 使用 if_sheet_exists 参数替换已存在的工作表
with ExcelWriter(path_to_file.xlsx,modea,engineopenpyxl,if_sheet_existsreplace,
) as writer:df.to_excel(writer, sheet_nameSheet1)向同一个工作表写入多个 DataFrame注意 if_sheet_exists 参数需要设置为 overlay
with ExcelWriter(path_to_file.xlsx,modea,engineopenpyxl,if_sheet_existsoverlay,
) as writer:df1.to_excel(writer, sheet_nameSheet1)df2.to_excel(writer, sheet_nameSheet1, startcol3)
4.4 将 Excel 文件存储在内存中
import ioimport pandas as pddf pd.DataFrame([[ABC, XYZ]], columns[Foo, Bar])
buffer io.BytesIO()
with pd.ExcelWriter(buffer) as writer:df.to_excel(writer)4.5 将 Excel 文件打包到 zip 压缩文件中
import zipfileimport pandas as pddf pd.DataFrame([[ABC, XYZ]], columns[Foo, Bar])
with zipfile.ZipFile(path_to_file.zip, w) as zf:with zf.open(filename.xlsx, w) as buffer:with pd.ExcelWriter(buffer) as writer:df.to_excel(writer)4.6 向底层引擎传递额外的参数
with pd.ExcelWriter(path_to_file.xlsx,enginexlsxwriter,engine_kwargs{options: {nan_inf_to_errors: True}}
) as writer:df.to_excel(writer)在追加模式下engine_kwargs 会传递给 openpyxl 的 load_workbook
with pd.ExcelWriter(path_to_file.xlsx,engineopenpyxl,modea,engine_kwargs{keep_vba: True}
) as writer:df.to_excel(writer, sheet_nameSheet2)