Pandas2.2 Input
Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,当时由专注于Python数据包开发的PyData开发团队继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
Pandas 读取数据方式
方法 | 描述 |
---|---|
read_clipboard | 从系统剪贴板中读取数据,并将其转换为 DataFrame |
read_csv | 读取csv文件 |
read_excel | 读取Excel数据 |
read_feather | 用于从Feather文件中读取数据,并将其转换为 Pandas DataFrame |
read_fwf | 读取表格或固定宽度格式的文本行到数据框 |
read_gbq | 从Google Bigquery中读取数据 |
read_hdf | 从h5文件当中读取数据 |
read_html | 读取HTML中的表格 |
read_json | 将json对象转换为Pandas对象 |
read_msgpack | 从指定文件中加载msgpack Pandas对象 |
read_orc | 从ORC文件中读取数据,并将其转换为 Pandas DataFrame |
read_parquet | 从Parquet文件中读取数据,并将其转换为 Pandas DataFrame |
read_pickle | 从指定文件中加载pickled Pandas或其他pickled对象 |
read_sas | 读取XPORT或SAS7BDAT格式的SAS(统计分析软件)文件 |
read_sql | 读取SQL请求或数据库中的表 |
read_sql_query | 从SQL请求读取数据 |
read_sql_table | 读取SQL数据库中的表 |
read_stata | 读取Stata(统计分析软件)文件 |
read_table | 读取通用分隔符分割的数据文件到数据框 |
read_xml | 从XML文档中读取数据并转换为 DataFrame |
pandas.read_excel()
// 读取excel
def read_excel(
io,
sheet_name: str | int | list[IntStrT] | None = 0,
*,
header: int | Sequence[int] | None = 0,
names: SequenceNotStr[Hashable] | range | None = None,
index_col: int | str | Sequence[int] | None = None,
usecols: int
| str
| Sequence[int]
| Sequence[str]
| Callable[[str], bool]
| None = None,
dtype: DtypeArg | None = None,
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb", "calamine"] | None = None,
converters: dict[str, Callable] | dict[int, Callable] | None = None,
true_values: Iterable[Hashable] | None = None,
false_values: Iterable[Hashable] | None = None,
skiprows: Sequence[int] | int | Callable[[int], object] | None = None,
nrows: int | None = None,
na_values=None,
keep_default_na: bool = True,
na_filter: bool = True,
verbose: bool = False,
parse_dates: list | dict | bool = False,
date_parser: Callable | lib.NoDefault = lib.no_default,
date_format: dict[Hashable, str] | str | None = None,
thousands: str | None = None,
decimal: str = ".",
comment: str | None = None,
skipfooter: int = 0,
storage_options: StorageOptions | None = None,
dtype_backend: DtypeBackend | lib.NoDefault = lib.no_default,
engine_kwargs: dict | None = None,
) -> DataFrame | dict[IntStrT, DataFrame]:
...
参数说明
-
io
:-
描述: 指定要读取的文件路径、文件对象或 URL。支持多种输入类型,包括本地文件路径、文件对象、URL、字节流等。
-
类型:
- 字符串(文件路径或 URL)
- 文件对象
- 字节流 Deprecated since version 2.1.0
- 路径对象(如
pathlib.Path
)
-
示例:
import pandas as pd # 读取本地文件路径 df = pd.read_excel('file.xlsx') # 读取文件对象 with open('file.xlsx', 'rb') as file: df = pd.read_excel(file) # 读取 URL url = 'https://example.com/data.xlsx' df = pd.read_excel(url) # 读取字节流 with open('file.xlsx', 'rb') as file: data = file.read() df = pd.read_excel(data) # 读取 pathlib.Path 对象 from pathlib import Path path = Path('file.xlsx') df = pd.read_excel(path)
-
-
sheet_name
:-
描述: 指定要读取的 Excel 工作表名称或索引。可以是单个工作表的名称、索引,也可以是包含多个工作表名称或索引的列表。
-
类型:
- 字符串(工作表名称)
- 整数(工作表索引,从 0 开始)
- 列表(多个工作表的名称或索引)
- 字典(键为工作表名称或索引,值为返回的 DataFrame 名称)
None
(读取所有工作表)
-
默认值:
0
,表示读取第一个工作表 -
示例:
import pandas as pd # 读取第一个工作表(默认行为) df = pd.read_excel('file.xlsx') # 读取指定名称的工作表 df = pd.read_excel('file.xlsx', sheet_name='Sheet1') # 读取指定索引的工作表 df = pd.read_excel('file.xlsx', sheet_name=1) # 读取多个工作表 dfs = pd.read_excel('file.xlsx', sheet_name=['Sheet1', 'Sheet2']) # 读取多个工作表并指定返回的 DataFrame 名称 dfs = pd.read_excel('file.xlsx', sheet_name={0: 'FirstSheet', 1: 'SecondSheet'}) # 读取所有工作表 dfs = pd.read_excel('file.xlsx', sheet_name=None)
-
-
header
:-
描述: 指定用作列名的行号。默认情况下,Pandas 会将第一行用作列名。可以是单个整数、整数列表或
None
。 -
类型:
- 整数(指定某一行作为列名,从 0 开始)
- 整数列表(指定多行作为列名)
None
(不使用任何行作为列名,所有行都将被视为数据行)
-
默认值:
0
,表示将第一行用作列名 -
示例:
import pandas as pd # 读取 Excel 文件,使用第一行作为列名(默认行为) df = pd.read_excel('file.xlsx') # 读取 Excel 文件,使用第二行作为列名 df = pd.read_excel('file.xlsx', header=1) # 读取 Excel 文件,使用第一行和第二行作为多级列名 df = pd.read_excel('file.xlsx', header=[0, 1]) # 读取 Excel 文件,不使用任何行作为列名 df = pd.read_excel('file.xlsx', header=None)
-
-
names
:-
描述: 指定列名的列表。如果
header
参数为None
,则names
参数用于指定列名。如果header
参数指定了某一行作为列名,names
参数可以用于覆盖这些列名。 -
类型: 列名列表(字符串列表)
-
默认值:
None
,表示使用文件中的列名 -
示例:
import pandas as pd # 读取 Excel 文件,使用指定的列名 df = pd.read_excel('file.xlsx', names=['Col1', 'Col2', 'Col3']) # 读取 Excel 文件,不使用文件中的列名,而是使用指定的列名 df = pd.read_excel('file.xlsx', header=None, names=['Col1', 'Col2', 'Col3']) # 读取 Excel 文件,覆盖文件中的列名 df = pd.read_excel('file.xlsx', header=0, names=['NewCol1', 'NewCol2', 'NewCol3'])
-
-
index_col
:-
描述: 指定用作 DataFrame 索引的列。可以是单个列名、列索引或列名列表。如果指定多个列,将创建一个多级索引。
-
类型:
- 整数(列索引,从 0 开始)
- 字符串(列名)
- 整数列表或字符串列表(多级索引)
None
(不使用任何列作为索引)
-
默认值:
None
,表示不使用任何列作为索引 -
示例:
import pandas as pd # 读取 Excel 文件,使用第一列作为索引 df = pd.read_excel('file.xlsx', index_col=0) # 读取 Excel 文件,使用指定的列名作为索引 df = pd.read_excel('file.xlsx', index_col='Column1') # 读取 Excel 文件,使用多列作为多级索引 df = pd.read_excel('file.xlsx', index_col=[0, 1]) # 读取 Excel 文件,使用多列名作为多级索引 df = pd.read_excel('file.xlsx', index_col=['Column1', 'Column2'])
-
-
usecols
:-
描述: 指定要读取的列。可以是单个列名、列索引、列名列表或列索引列表。还可以使用函数来选择列。
-
类型:
- 整数(列索引,从 0 开始)
- 字符串(列名)
- 整数列表或字符串列表(多个列索引或列名)
- 函数(接受列名或列索引,返回布尔值,决定是否读取该列)
-
默认值:
None
,表示读取所有列 -
示例:
import pandas as pd # 读取 Excel 文件,使用指定的列名 df = pd.read_excel('file.xlsx', usecols=['Column1', 'Column2']) # 读取 Excel 文件,使用指定的列索引 df = pd.read_excel('file.xlsx', usecols=[0, 1]) # 读取 Excel 文件,使用函数选择列 df = pd.read_excel('file.xlsx', usecols=lambda x: x in ['Column1', 'Column2']) # 读取 Excel 文件,使用范围选择列 df = pd.read_excel('file.xlsx', usecols=range(2))
-
-
dtype
:-
描述: 指定每列的数据类型。可以是单个数据类型、数据类型字典或数据类型列表。如果未指定,Pandas 将自动推断每列的数据类型。
-
类型:
- 单个数据类型(应用于所有列)
- 数据类型字典(键为列名或列索引,值为数据类型)
- 数据类型列表(按顺序应用于每一列)
-
默认值:
None
,表示自动推断数据类型 -
示例:
import pandas as pd # 读取 Excel 文件,指定所有列的数据类型 df = pd.read_excel('file.xlsx', dtype=str) # 读取 Excel 文件,指定特定列的数据类型 df = pd.read_excel('file.xlsx', dtype={'Column1': str, 'Column2': int}) # 读取 Excel 文件,使用数据类型列表指定每列的数据类型 df = pd.read_excel('file.xlsx', dtype=[str, int, float])
-
-
engine
:-
描述: 指定用于读取 Excel 文件的解析引擎。Pandas 支持多种解析引擎,不同的引擎可能支持不同的文件格式和功能。
-
类型: 字符串
-
可选值:
'xlrd'
:适用于.xls
和.xlsx
文件。注意,xlrd
从版本 2.0.0 开始不再支持.xlsx
文件,建议使用openpyxl
。'openpyxl'
:适用于.xlsx
文件。'odf'
:适用于 OpenDocument 格式的文件(.ods
)。'pyxlsb'
:适用于.xlsb
文件。
-
默认值:
None
,表示 Pandas 会根据文件扩展名自动选择合适的引擎 -
示例:
import pandas as pd # 读取 Excel 文件,使用默认引擎 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,指定使用 `openpyxl` 引擎 df = pd.read_excel('file.xlsx', engine='openpyxl') # 读取 Excel 文件,指定使用 `xlrd` 引擎 df = pd.read_excel('file.xls', engine='xlrd') # 读取 OpenDocument 格式的文件,指定使用 `odf` 引擎 df = pd.read_excel('file.ods', engine='odf') # 读取 `.xlsb` 文件,指定使用 `pyxlsb` 引擎 df = pd.read_excel('file.xlsb', engine='pyxlsb')
-
-
converters
:-
描述: 指定自定义的转换函数,用于将特定列的数据转换为所需的格式。
converters
参数是一个字典,键为列名或列索引,值为转换函数。 -
类型: 字典,键为列名或列索引,值为转换函数
-
默认值:
None
,表示不进行自定义转换 -
示例:
import pandas as pd # 定义转换函数 def to_uppercase(x): return x.upper() def to_int(x): return int(x) # 读取 Excel 文件,使用自定义转换函数 df = pd.read_excel('file.xlsx', converters={'Column1': to_uppercase, 'Column2': to_int}) # 读取 Excel 文件,使用列索引指定转换函数 df = pd.read_excel('file.xlsx', converters={0: to_uppercase, 1: to_int})
-
-
true_values
:-
描述: 指定哪些值应被识别为
True
。这在读取包含布尔值的 Excel 文件时非常有用,特别是当文件中的布尔值不是标准的True
或False
表示形式时。 -
类型: 列表,包含应被视为
True
的值 -
默认值:
None
,表示不进行特殊处理,Pandas 会尝试自动推断布尔值 -
示例:
import pandas as pd # 读取 Excel 文件,指定哪些值应被视为 True df = pd.read_excel('file.xlsx', true_values=['yes', 'y', '1']) # 读取 Excel 文件,指定多个列的 true_values df = pd.read_excel('file.xlsx', true_values=['yes', 'y', '1'], false_values=['no', 'n', '0'])
-
-
false_values
:-
描述: 指定哪些值应被识别为
False
。这在读取包含布尔值的 Excel 文件时非常有用,特别是当文件中的布尔值不是标准的False
表示形式时。 -
类型: 列表,包含应被视为
False
的值 -
默认值:
None
,表示不进行特殊处理,Pandas 会尝试自动推断布尔值 -
示例:
import pandas as pd # 读取 Excel 文件,指定哪些值应被视为 False df = pd.read_excel('file.xlsx', false_values=['no', 'n', '0']) # 读取 Excel 文件,同时指定 true_values 和 false_values df = pd.read_excel('file.xlsx', true_values=['yes', 'y', '1'], false_values=['no', 'n', '0'])
-
-
skiprows
:-
描述: 指定在读取 Excel 文件时要跳过的行数。这对于忽略文件开头的标题、注释或其他不需要的数据行非常有用。
-
类型: 整数或整数列表
-
默认值:
None
,表示不跳过任何行 -
示例:
import pandas as pd # 读取 Excel 文件,跳过前 2 行 df = pd.read_excel('file.xlsx', skiprows=2) # 读取 Excel 文件,跳过指定的行 df = pd.read_excel('file.xlsx', skiprows=[0, 2, 4])
-
-
nrows
:-
描述: 指定在读取 Excel 文件时要读取的最大行数。这对于处理大型文件或仅需要部分数据时非常有用。
-
类型: 整数
-
默认值:
None
,表示读取所有行 -
示例:
import pandas as pd # 读取 Excel 文件,读取前 5 行 df = pd.read_excel('file.xlsx', nrows=5) # 读取 Excel 文件,结合 skiprows 参数读取特定范围的行 df = pd.read_excel('file.xlsx', skiprows=2, nrows=3)
-
-
na_values
:-
描述: 指定哪些值应被视为缺失值(NaN)。这对于处理包含特定字符串或标记的 Excel 文件非常有用,这些字符串或标记表示缺失数据。
-
类型: 单个值、列表或字典
-
默认值:
None
,表示使用 Pandas 默认的缺失值识别规则 -
示例:
import pandas as pd # 读取 Excel 文件,指定哪些值应被视为缺失值 df = pd.read_excel('file.xlsx', na_values=['NA', 'N/A', '']) # 读取 Excel 文件,针对特定列指定缺失值 df = pd.read_excel('file.xlsx', na_values={'Column1': ['NA', 'N/A'], 'Column2': ['-', 'null']})
-
-
keep_default_na
:-
描述: 控制是否使用 Pandas 默认的缺失值识别规则。如果设置为
False
,则不会使用默认的缺失值标识符(如#N/A
,#N/A N/A
,#NA
,-1.#IND
,-1.#QNAN
,-NaN
,-nan
,1.#IND
,1.#QNAN
,N/A
,NA
,NULL
,NaN
,n/a
,nan
,null
),只有通过na_values
参数指定的值会被识别为缺失值。 -
类型: 布尔值
-
默认值:
True
,表示使用 Pandas 默认的缺失值识别规则 -
示例:
import pandas as pd # 读取 Excel 文件,不使用默认的缺失值识别规则 df = pd.read_excel('file.xlsx', keep_default_na=False) # 读取 Excel 文件,不使用默认的缺失值识别规则,并指定自定义的缺失值 df = pd.read_excel('file.xlsx', keep_default_na=False, na_values=['NA', 'N/A', ''])
-
-
na_filter
:-
描述: 控制是否检测并过滤缺失值。如果设置为
False
,则不会检测缺失值,所有数据将按原样读取,不会将任何值转换为NaN
。这可以提高读取速度,特别是在处理大型文件时。 -
类型: 布尔值
-
默认值:
True
,表示检测并过滤缺失值 -
示例:
import pandas as pd # 读取 Excel 文件,检测并过滤缺失值 df = pd.read_excel('file.xlsx', na_filter=True) # 读取 Excel 文件,不检测缺失值 df = pd.read_excel('file.xlsx', na_filter=False)
-
-
verbose
:-
描述: 控制是否在读取 Excel 文件时输出详细信息。如果设置为
True
,Pandas 会在读取过程中输出有关解析过程的详细信息,包括哪些值被识别为缺失值等。 -
类型: 布尔值
-
默认值:
False
,表示不输出详细信息 -
示例:
import pandas as pd # 读取 Excel 文件,不输出详细信息 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,输出详细信息 df = pd.read_excel('file.xlsx', verbose=True)
-
-
parse_dates
:-
描述: 指定哪些列应被解析为日期时间对象。这对于处理包含日期或时间戳的 Excel 文件非常有用,可以确保这些列的数据类型正确。
-
类型: 布尔值、整数、字符串、列表或字典
-
默认值:
False
,表示不解析日期 -
示例:
import pandas as pd # 读取 Excel 文件,解析所有日期列 df = pd.read_excel('file.xlsx', parse_dates=True) # 读取 Excel 文件,解析特定列 df = pd.read_excel('file.xlsx', parse_dates=['DateColumn']) # 读取 Excel 文件,解析多个列 df = pd.read_excel('file.xlsx', parse_dates=['DateColumn1', 'DateColumn2']) # 读取 Excel 文件,解析特定列并指定日期格式 df = pd.read_excel('file.xlsx', parse_dates={'DateColumn': '%Y-%m-%d'})
-
-
date_parser
:-
描述: Deprecated since version 2.0.0。指定一个函数,用于将日期字符串解析为日期时间对象。这对于处理包含复杂日期格式的 Excel 文件非常有用,可以确保日期数据被正确解析。
-
类型: 函数
-
默认值:
None
,表示使用 Pandas 默认的日期解析器 -
示例:
import pandas as pd from datetime import datetime # 自定义日期解析函数 def custom_date_parser(date_str): return datetime.strptime(date_str, '%d-%m-%Y') # 读取 Excel 文件,使用自定义日期解析器 df = pd.read_excel('file.xlsx', parse_dates=['DateColumn'], date_parser=custom_date_parser) # 使用 lambda 函数作为日期解析器 df = pd.read_excel('file.xlsx', parse_dates=['DateColumn'], date_parser=lambda x: pd.to_datetime(x, format='%d-%m-%Y'))
-
-
date_format
:-
描述: Added in version 2.0.0. 指定日期时间列的格式。这个参数允许您定义如何解析 Excel 文件中的日期时间数据,确保它们被正确转换为 Pandas 的
datetime
类型。这对于处理包含日期时间数据的 Excel 文件非常有用。 -
类型: 字符串、字典
-
默认值:
None
,表示使用默认的日期时间解析规则 -
示例:
import pandas as pd # 读取 Excel 文件,使用默认的日期时间解析规则 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,指定日期时间格式 df = pd.read_excel('file.xlsx', date_format='%Y-%m-%d %H:%M:%S') # 读取 Excel 文件,特定字段指定日期时间格式 df = pd.read_excel('file.xlsx', date_format={'DATE1': '%Y-%m-%d', 'DATE2': '%Y-%m-%d %H:%M:%S'})
-
-
thousands
:-
描述: 指定用于分隔千位的字符。这对于处理包含带有千位分隔符的数字的 Excel 文件非常有用,可以确保这些数字被正确解析为数值类型。
-
类型: 字符串
-
默认值:
None
,表示不处理千位分隔符 -
示例:
import pandas as pd # 读取 Excel 文件,不处理千位分隔符 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,指定千位分隔符为逗号 df = pd.read_excel('file.xlsx', thousands=',') # 读取 Excel 文件,指定千位分隔符为空格 df = pd.read_excel('file.xlsx', thousands=' ')
-
-
decimal
:-
描述: 指定用作小数点的字符。这对于处理包含不同小数点符号(例如逗号)的数字的 Excel 文件非常有用,可以确保这些数字被正确解析为浮点数。
-
类型: 字符串
-
默认值:
.
,表示使用点号作为小数点 -
示例:
import pandas as pd # 读取 Excel 文件,使用默认的小数点符号 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,指定小数点符号为逗号 df = pd.read_excel('file.xlsx', decimal=',')
-
-
comment
:-
描述: 指定一个字符,用于标记注释行。当读取 Excel 文件时,Pandas 会忽略从该字符开始到行末的所有内容。这对于处理包含注释的 Excel 文件非常有用,可以确保注释不会干扰数据读取。
-
类型: 字符串
-
默认值:
None
,表示不处理注释 -
示例:
import pandas as pd # 读取 Excel 文件,不处理注释 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,指定注释字符为 # df = pd.read_excel('file.xlsx', comment='#')
-
-
storage_options
:-
描述: 用于传递给文件系统后端的额外参数,以便在读取远程文件时进行身份验证或其他配置。这在读取存储在云存储服务(如 Amazon S3、Google Cloud Storage 等)中的 Excel 文件时非常有用。
-
类型: 字典
-
默认值:
None
,表示不传递额外的存储选项 -
示例:
import pandas as pd # 读取本地 Excel 文件,不传递存储选项 df = pd.read_excel('file.xlsx') # 读取 Amazon S3 上的 Excel 文件,传递存储选项 s3_options = { 'key': 'your-access-key', 'secret': 'your-secret-key', 'client_kwargs': {'region_name': 'us-west-2'} } df = pd.read_excel('s3://your-bucket/path/to/file.xlsx', storage_options=s3_options) # 读取 Google Cloud Storage 上的 Excel 文件,传递存储选项 gcs_options = { 'token': '/path/to/your/service-account-file.json' } df = pd.read_excel('gs://your-bucket/path/to/file.xlsx', storage_options=gcs_options)
-
-
dtype_backend
:-
描述: 指定用于数据类型的后端。这个参数允许您选择不同的数据类型后端来处理 DataFrame 中的数据类型,特别是在处理大型数据集或需要更高性能的情况下。目前支持的后端有
numpy
和pyarrow
。 -
类型: 字符串
-
默认值:
None
,表示使用默认的numpy
后端 -
可选值:
numpy
: 使用 NumPy 作为数据类型后端。pyarrow
: 使用 PyArrow 作为数据类型后端。
-
示例:
import pandas as pd # 读取 Excel 文件,使用默认的 numpy 后端 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,使用 pyarrow 后端 df = pd.read_excel('file.xlsx', dtype_backend='pyarrow')
-
-
engine_kwargs
:-
描述: 用于传递给底层读取引擎的额外参数。这些参数可以用于配置特定于引擎的行为,例如调整内存使用、优化性能等。
engine_kwargs
是一个字典,键和值取决于所使用的引擎。 -
类型: 字典
-
默认值:
None
,表示不传递额外的引擎参数 -
示例:
import pandas as pd # 读取 Excel 文件,不传递额外的引擎参数 df = pd.read_excel('file.xlsx') # 读取 Excel 文件,传递额外的引擎参数 engine_kwargs = { 'memory_map': True, 'keep_vba': False } df = pd.read_excel('file.xlsx', engine_kwargs=engine_kwargs)
-