在Python的Pandas库中,读取和写入Excel文件主要使用read_excel
和to_excel
函数。以下是详细用法和示例:
1. 读取Excel文件:pd.read_excel()
import pandas as pd
# 读取Excel文件
df = pd.read_excel('文件路径.xlsx', sheet_name='Sheet1', header=0, usecols='A:C', skiprows=1)
参数说明:
-
io
:- 含义: Excel文件的路径或文件对象。
- 类型: str 或 ExcelFile对象。
- 示例:
'data.xlsx'
或pd.ExcelFile('data.xlsx')
.
-
sheet_name
:- 含义: 要读取的工作表名称或索引。
- 类型: str, int, list, 或 None。
- 可选值: 默认0(第一个工作表),可以是工作表名称(如
'Sheet1'
)或工作表索引(如0
)。 - 示例:
'Sheet1'
或1
.
-
header
:- 含义: 用作列名的行索引。
- 类型: int, list of int 或 None。
- 可选值: 默认0;可以是指定的行数,或将其设为None表示没有列名。
- 示例:
0
或[0, 1]
。
-
names
:- 含义: 自定义列名。
- 类型: list。
- 可选值: 任何列名的列表。
- 示例:
['Name', 'Age', 'Salary']
。
-
index_col
:- 含义: 指定作为行索引的列。
- 类型: int, str, 或 list of int/str。
- 可选值: 可以是列的名称或索引。
- 示例:
0
或'ID'
。
-
usecols
:- 含义: 要读取的列。
- 类型: str, list of str, 或 callable。
- 可选值: 可以指定列的范围(如
'A:C'
)或列名称。 - 示例:
'A:C'
或['A', 'B']
。
-
skiprows
:- 含义: 跳过的行数或行号。
- 类型: int, list of int。
- 可选值: 默认0;可以是要跳过的行数或行号列表。
- 示例:
1
或[0, 2, 3]
。
-
nrows
:- 含义: 读取的行数。
- 类型: int。
- 可选值: 读取前N行。
- 示例:
10
(读取前10行)。
-
na_filter
:- 含义: 是否过滤NA值。
- 类型: bool。
- 可选值: 默认True;可以设置为False以保留NA。
- 示例:
False
。
-
parse_dates
:- 含义: 指定哪些列应解析为日期。
- 类型: bool, str, list of str, 或 dict。
- 可选值: 默认False。
- 示例:
['Date']
。
-
date_parser
:- 含义: 用于解析日期的函数。
- 类型: function。
- 可选值: 可以是自定义的日期解析函数。
- 示例:
lambda x: pd.to_datetime(x)
。
-
comment
:- 含义: 忽略以此字符开头的行。
- 类型: str。
- 可选值: 默认None。
- 示例:
'#'
。
pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None,
squeeze=False, dtype=None, engine=None, converters=None,
true_values=None, false_values=None, skiprows=None,
nrows=None, na_filter=True, verbose=False,
parse_dates=False, date_parser=None,
thousands=None, comment=None, skipfooter=0,
convert_float=True, mangle_dupe_cols=True,
storage_options=None)
2. 写入Excel文件:DataFrame.to_excel()
# 将DataFrame写入Excel文件
df.to_excel('输出文件路径.xlsx', sheet_name='Sheet1', index=False, header=True)
参数说明:
-
excel_writer
:- 含义: 输出文件的路径或ExcelWriter对象。
- 类型: str 或 ExcelWriter对象。
- 示例:
'output.xlsx'
。
-
sheet_name
:- 含义: 要写入的工作表名称。
- 类型: str。
- 可选值: 默认’Sheet1’。
- 示例:
'Sales_Data'
。
-
na_rep
:- 含义: 替换缺失值的字符串。
- 类型: str。
- 可选值: 默认为空字符串。
- 示例:
'NA'
。
-
float_format
:- 含义: 浮点数格式。
- 类型: str。
- 可选值: 例如
'%.2f'
。 - 示例:
'%.2f'
。
-
header
:- 含义: 是否写入列名。
- 类型: bool 或 list。
- 可选值: 默认True。
- 示例:
True
或['Column1', 'Column2']
。
-
index
:- 含义: 是否写入行索引。
- 类型: bool。
- 可选值: 默认True。
- 示例:
False
。
-
index_label
:- 含义: 行索引的列名。
- 类型: str 或 list。
- 可选值: 默认None。
- 示例:
'Index'
。
-
startrow
:- 含义: 开始写入的行数。
- 类型: int。
- 可选值: 默认0。
- 示例:
1
(从第二行开始)。
-
startcol
:- 含义: 开始写入的列数。
- 类型: int。
- 可选值: 默认0。
- 示例:
1
(从第二列开始)。
-
merge_cells
:- 含义: 是否合并单元格。
- 类型: bool。
- 可选值: 默认True。
- 示例:
False
。
-
encoding
:- 含义: 文件编码。
- 类型: str。
- 可选值: 默认为None。
- 示例:
'utf-8'
。
-
date_format
:- 含义: 日期格式。
- 类型: str。
- 可选值: 例如
'YYYY-MM-DD'
。 - 示例:
'YYYY-MM-DD'
。
DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None,
header=True, index=True, index_label=None, startrow=0,
startcol=0, engine=None, merge_cells=True,
encoding=None, inf_rep='inf',
date_format=None, dual_column=False,
store_mode=None, **kwargs)
简单示例
读取示例
df = pd.read_excel('data.xlsx', sheet_name='Sales', usecols='A:D', skiprows=1)
写入示例
df.to_excel('sales_output.xlsx', sheet_name='Sales_Summary', index=False)