API 参考
此页面概述了所有公开的 pandas 对象、函数和方法。pandas.*
命名空间中公开的所有类和函数都是公开的。
以下子包是公开的。
-
pandas.errors
:由 pandas 引发的自定义异常和警告类。 -
pandas.plotting
:绘图公共 API。 -
pandas.testing
:用于编写涉及 pandas 对象的测试的函数。 -
pandas.api.extensions
:用于扩展 pandas 对象的函数和类。 -
pandas.api.indexers
:滚动窗口索引器的函数和类。 -
pandas.api.interchange
:DataFrame 互换协议。 -
pandas.api.types
:数据类型类和函数。 -
pandas.api.typing
:可能需要用于类型提示的类。这些是用户遇到的中间结果类,但不应由用户直接实例化。不要将这些类与 pandas-stubs 包中的类混淆,后者除了 pandas 中出现的类外还包含用于类型提示的类。
此外,文档中还提到了 pandas.io
和 pandas.tseries
子模块中的公共函数。
警告
pandas.core
、pandas.compat
和 pandas.util
顶级模块是私有的。不保证此类模块中的稳定功能。
-
输入/输出
-
序列化
-
平面文件
-
剪贴板
-
Excel
-
JSON
-
HTML
-
XML
-
Latex
-
HDFStore: PyTables (HDF5)
-
羽毛
-
Parquet
-
ORC
-
SAS
-
SPSS
-
SQL
-
Google BigQuery
-
STATA
-
-
常用函数
-
数据操作
-
顶级缺失数据
-
顶级处理数值数据
-
顶级处理日期时间数据
-
顶级处理区间数据
-
顶级评估
-
日期时间格式
-
散列
-
从其他 DataFrame 库导入
-
-
系列
-
构造函数
-
属性
-
转换
-
索引、迭代
-
二元运算符函数
-
函数应用、GroupBy 和窗口
-
计算/描述性统计
-
重新索引/选择/标签操作
-
缺失数据处理
-
重塑、排序
-
组合/比较/连接/合并
-
与时间序列相关
-
访问器
-
绘图
-
序列化/IO/转换
-
-
数据帧
-
构造函数
-
属性和底层数据
-
转换
-
索引、迭代
-
二进制运算函数
-
函数应用、GroupBy 和窗口
-
计算/描述性统计
-
重新索引/选择/标签操作
-
缺失数据处理
-
重塑、排序、转置
-
组合/比较/连接/合并
-
与时间序列相关
-
标志
-
元数据
-
绘图
-
稀疏访问器
-
序列化/IO/转换
-
-
pandas 数组、标量和数据类型
-
对象
-
实用工具
-
-
索引对象
-
索引
-
数值索引
-
分类索引
-
区间索引
-
MultiIndex
-
DatetimeIndex
-
TimedeltaIndex
-
PeriodIndex
-
-
日期偏移
-
日期偏移
-
工作日
-
BusinessHour
-
CustomBusinessDay
-
CustomBusinessHour
-
MonthEnd
-
MonthBegin
-
BusinessMonthEnd
-
BusinessMonthBegin
-
CustomBusinessMonthEnd
-
CustomBusinessMonthBegin
-
SemiMonthEnd
-
SemiMonthBegin
-
Week
-
WeekOfMonth
-
LastWeekOfMonth
-
BQuarterEnd
-
BQuarterBegin
-
QuarterEnd
-
QuarterBegin
-
BYearEnd
-
BYearBegin
-
YearEnd
-
YearBegin
-
FY5253
-
FY5253Quarter
-
Easter
-
Tick
-
Day
-
Hour
-
Minute
-
Second
-
Milli
-
Micro
-
Nano
-
-
频率
- pandas.tseries.frequencies.to_offset
-
窗口
-
滚动窗口函数
-
加权窗口函数
-
扩展窗口函数
-
指数加权窗口函数
-
窗口索引器
-
-
GroupBy
-
索引,迭代
-
函数应用助手
-
函数应用
-
DataFrameGroupBy
计算 / 描述统计 -
SeriesGroupBy
计算 / 描述统计 -
绘图和可视化
-
-
重新采样
-
索引,迭代
-
函数应用
-
上采样
-
计算 / 描述统计
-
-
样式
-
Styler 构造函数
-
Styler 属性
-
样式应用
-
内置样式
-
样式导出和导入
-
-
绘图
-
pandas.plotting.andrews_curves
-
pandas.plotting.autocorrelation_plot
-
pandas.plotting.bootstrap_plot
-
pandas.plotting.boxplot
-
pandas.plotting.deregister_matplotlib_converters
-
pandas.plotting.lag_plot
-
pandas.plotting.parallel_coordinates
-
pandas.plotting.plot_params
-
pandas.plotting.radviz
-
pandas.plotting.register_matplotlib_converters
-
pandas.plotting.scatter_matrix
-
pandas.plotting.table
-
-
选项和设置
-
处理选项
-
数字格式化
-
-
扩展
-
pandas.api.extensions.register_extension_dtype
-
pandas.api.extensions.register_dataframe_accessor
-
pandas.api.extensions.register_series_accessor
-
pandas.api.extensions.register_index_accessor
-
pandas.api.extensions.ExtensionDtype
-
pandas.api.extensions.ExtensionArray
-
pandas.arrays.NumpyExtensionArray
-
pandas.api.indexers.check_array_indexer
-
-
测试
-
断言函数
-
异常和警告
-
错误报告函数
-
测试套件运行器
-
-
缺失值
-
pandas.NA
-
pandas.NaT
-
输入/输出
Pickling
read_pickle (filepath_or_buffer[, …]) | 从文件中加载经过 pickling 的 pandas 对象(或任何对象)。 |
---|---|
DataFrame.to_pickle (path, *[, compression, …]) | 将对象 pickling(序列化)到文件。 |
平面文件
read_table (filepath_or_buffer, *[, sep, …]) | 将通用分隔文件读入 DataFrame。 |
---|---|
read_csv (filepath_or_buffer, *[, sep, …]) | 将逗号分隔值(csv)文件读入 DataFrame。 |
DataFrame.to_csv ([path_or_buf, sep, na_rep, …]) | 将对象写入逗号分隔值(csv)文件。 |
read_fwf (filepath_or_buffer, *[, colspecs, …]) | 将固定宽度格式的表格行读入 DataFrame。 |
剪贴板
read_clipboard ([sep, dtype_backend]) | 从剪贴板读取文本并传递给read_csv() 。 |
---|---|
DataFrame.to_clipboard (*[, excel, sep]) | 将对象复制到系统剪贴板。 |
Excel
read_excel (io[, sheet_name, header, names, …]) | 将 Excel 文件读入pandas DataFrame 。 |
---|---|
DataFrame.to_excel (excel_writer, *[, …]) | 将对象写入 Excel 表格。 |
ExcelFile (path_or_buffer[, engine, …]) | 用于将表格化的 Excel 表格解析为 DataFrame 对象的类。 |
ExcelFile.book | |
ExcelFile.sheet_names | |
ExcelFile.parse ([sheet_name, header, names, …]) | 将指定的工作表解析为 DataFrame。 |
Styler.to_excel (excel_writer[, sheet_name, …]) | 将 Styler 写入 Excel 表格。 |
ExcelWriter (path[, engine, date_format, …]) | 用于将 DataFrame 对象写入 Excel 表格的类。 |
JSON
read_json (path_or_buf, *[, orient, typ, …]) | 将 JSON 字符串转换为 pandas 对象。 |
---|---|
json_normalize (data[, record_path, meta, …]) | 将半结构化的 JSON 数据规范化为平面表格。 |
DataFrame.to_json ([path_or_buf, orient, …]) | 将对象转换为 JSON 字符串。 |
build_table_schema (data[, index, …]) | 从 data 创建表模式。 |
HTML
read_html (io, *[, match, flavor, header, …]) | 将 HTML 表格读取为 DataFrame 对象的 list 。 |
---|---|
DataFrame.to_html ([buf, columns, col_space, …]) | 将 DataFrame 渲染为 HTML 表格。 |
Styler.to_html ([buf, table_uuid, …]) | 将 Styler 写入文件、缓冲区或以 HTML-CSS 格式的字符串。 |
XML
read_xml (path_or_buffer, *[, xpath, …]) | 将 XML 文档读取为 DataFrame 对象。 |
---|---|
DataFrame.to_xml ([path_or_buffer, index, …]) | 将 DataFrame 渲染为 XML 文档。 |
Latex
DataFrame.to_latex ([buf, columns, header, …]) | 将对象渲染为 LaTeX 表格、长表格或嵌套表格。 |
---|---|
Styler.to_latex ([buf, column_format, …]) | 将 Styler 写入文件、缓冲区或以 LaTeX 格式的字符串。 |
HDFStore: PyTables (HDF5)
read_hdf (path_or_buf[, key, mode, errors, …]) | 从存储中读取,如果打开则关闭。 |
---|---|
HDFStore.put (key, value[, format, index, …]) | 将对象存储在 HDFStore 中。 |
HDFStore.append (key, value[, format, axes, …]) | 在文件中的表格中追加。 |
HDFStore.get (key) | 从文件中检索存储的 pandas 对象。 |
HDFStore.select (key[, where, start, stop, …]) | 检索存储在文件中的 pandas 对象,可选地基于 where 条件。 |
HDFStore.info () | 打印存储的详细信息。 |
HDFStore.keys ([include]) | 返回与 HDFStore 中存储的对象对应的键列表。 |
HDFStore.groups () | 返回所有顶级节点的列表。 |
HDFStore.walk ([where]) | 遍历 pandas 对象的 pytables 组层次结构。 |
警告
可以将 DataFrame
或 Series
的子类存储到 HDF5,但子类的类型在存储时会丢失。
Feather
read_feather (path[, columns, use_threads, …]) | 从文件路径加载 feather 格式对象。 |
---|---|
DataFrame.to_feather (path, **kwargs) | 将 DataFrame 写入二进制 Feather 格式。 |
Parquet
read_parquet (path[, engine, columns, …]) | 从文件路径加载 parquet 对象,返回一个 DataFrame。 |
---|---|
DataFrame.to_parquet ([path, engine, …]) | 将 DataFrame 写入二进制 parquet 格式。 |
ORC
read_orc (path[, columns, dtype_backend, …]) | 从文件路径加载 ORC 对象,返回一个 DataFrame。 |
---|---|
DataFrame.to_orc ([path, engine, index, …]) | 将 DataFrame 写入 ORC 格式。 |
SAS
read_sas (filepath_or_buffer, *[, format, …]) | 读取存储为 XPORT 或 SAS7BDAT 格式文件的 SAS 文件。 |
---|
SPSS
read_spss (path[, usecols, …]) | 从文件路径加载 SPSS 文件,返回一个 DataFrame。 |
---|
SQL
read_sql_table (table_name, con[, schema, …]) | 将 SQL 数据库表读取为 DataFrame。 |
---|---|
read_sql_query (sql, con[, index_col, …]) | 将 SQL 查询读取为 DataFrame。 |
read_sql (sql, con[, index_col, …]) | 将 SQL 查询或数据库表读取到 DataFrame 中。 |
DataFrame.to_sql (name, con, *[, schema, …]) | 将存储在 DataFrame 中的记录写入 SQL 数据库。 |
谷歌大查询
read_gbq (query[, project_id, index_col, …]) | (已弃用)从谷歌大查询加载数据。 |
---|
STATA
read_stata (filepath_or_buffer, *[, …]) | 将 Stata 文件读取到 DataFrame 中。 |
---|---|
DataFrame.to_stata (path, *[, convert_dates, …]) | 将 DataFrame 对象导出为 Stata dta 格式。 |
StataReader.data_label | 返回 Stata 文件的数据标签。 |
StataReader.value_labels () | 返回一个嵌套字典,将每个变量名与其值和标签关联。 |
StataReader.variable_labels () | 返回一个将每个变量名与相应标签关联的字典。 |
StataWriter.write_file () | 将 DataFrame 对象导出为 Stata dta 格式。 |
Pickling
read_pickle (filepath_or_buffer[, …]) | 从文件中加载经过 Pickle 处理的 pandas 对象(或任何对象)。 |
---|---|
DataFrame.to_pickle (path, *[, compression, …]) | 将对象序列化(Pickle)到文件。 |
平面文件
read_table (filepath_or_buffer, *[, sep, …]) | 将通用分隔文件读取到 DataFrame 中。 |
---|---|
read_csv (filepath_or_buffer, *[, sep, …]) | 将逗号分隔值(csv)文件读取到 DataFrame 中。 |
DataFrame.to_csv ([path_or_buf, sep, na_rep, …]) | 将对象写入逗号分隔值(csv)文件。 |
read_fwf (filepath_or_buffer, *[, colspecs, …]) | 将固定宽度格式行的表读取到 DataFrame 中。 |
剪贴板
read_clipboard ([sep, dtype_backend]) | 从剪贴板读取文本并传递给 read_csv() 。 |
---|---|
DataFrame.to_clipboard (*[, excel, sep]) | 将对象复制到系统剪贴板。 |
Excel
read_excel (io[, sheet_name, header, names, …]) | 将 Excel 文件读取为 pandas DataFrame 。 |
---|---|
DataFrame.to_excel (excel_writer, *[, …]) | 将对象写入 Excel 表格。 |
ExcelFile (path_or_buffer[, engine, …]) | 用于将表格形式的 Excel 表格解析为 DataFrame 对象的类。 |
ExcelFile.book | |
ExcelFile.sheet_names | |
ExcelFile.parse ([sheet_name, header, names, …]) | 将指定的工作表解析为 DataFrame。 |
Styler.to_excel (excel_writer[, sheet_name, …]) | 将 Styler 写入 Excel 表格。 |
ExcelWriter (path[, engine, date_format, …]) | 用于将 DataFrame 对象写入 Excel 表格的类。 |
JSON
read_json (path_or_buf, *[, orient, typ, …]) | 将 JSON 字符串转换为 pandas 对象。 |
---|---|
json_normalize (data[, record_path, meta, …]) | 将半结构化的 JSON 数据规范化为平面表。 |
DataFrame.to_json | 将对象转换为 JSON 字符串。 |
build_table_schema (data[, index, …]) | 从 data 创建一个表模式。 |
HTML
read_html (io, *[, match, flavor, header, …]) | 将 HTML 表格读取为 DataFrame 对象的 list 。 |
---|---|
DataFrame.to_html ([buf, columns, col_space, …]) | 将 DataFrame 渲染为 HTML 表格。 |
Styler.to_html ([buf, table_uuid, …]) | 将 Styler 写入文件、缓冲��或字符串,格式为 HTML-CSS。 |
XML
read_xml (path_or_buffer, *[, xpath, …]) | 将 XML 文档读取为DataFrame 对象。 |
---|---|
DataFrame.to_xml ([path_or_buffer, index, …]) | 将 DataFrame 呈现为 XML 文档。 |
Latex
DataFrame.to_latex ([buf, columns, header, …]) | 将对象呈现为 LaTeX 表格、长表格或嵌套表格。 |
---|---|
Styler.to_latex ([buf, column_format, …]) | 将 Styler 写入文件、缓冲区或字符串,格式为 LaTeX。 |
HDFStore: PyTables (HDF5)
read_hdf (path_or_buf[, key, mode, errors, …]) | 从存储中读取数据,如果打开了存储,则关闭它。 |
---|---|
HDFStore.put (key, value[, format, index, …]) | 将对象存储在 HDFStore 中。 |
HDFStore.append (key, value[, format, axes, …]) | 追加到文件中的表格。 |
HDFStore.get (key) | 检索存储在文件中的 pandas 对象。 |
HDFStore.select (key[, where, start, stop, …]) | 检索存储在文件中的 pandas 对象,可选地基于 where 条件。 |
HDFStore.info () | 打印存储的详细信息。 |
HDFStore.keys ([include]) | 返回存储在 HDFStore 中的对象对应的键列表。 |
HDFStore.groups () | 返回所有顶级节点的列表。 |
HDFStore.walk ([where]) | 遍历 pytables 组层次结构以查找 pandas 对象。 |
警告
可以将DataFrame
或Series
的子类存储到 HDF5 中,但子类的类型在存储时会丢失。
Feather
read_feather (path[, columns, use_threads, …]) | 从文件路径加载 feather 格式对象。 |
---|---|
DataFrame.to_feather (path, **kwargs) | 将 DataFrame 写入二进制 Feather 格式。 |
Parquet
read_parquet (path[, engine, columns, …]) | 从文件路径加载 parquet 对象,返回一个 DataFrame。 |
---|---|
DataFrame.to_parquet ([path, engine, …]) | 将 DataFrame 写入二进制 parquet 格式。 |
ORC
read_orc (path[, columns, dtype_backend, …]) | 从文件路径加载 ORC 对象,返回一个 DataFrame。 |
---|---|
DataFrame.to_orc ([path, engine, index, …]) | 将 DataFrame 写入 ORC 格式。 |
SAS
read_sas (filepath_or_buffer, *[, format, …]) | 读取存储为 XPORT 或 SAS7BDAT 格式文件的 SAS 文件。 |
---|
SPSS
read_spss (path[, usecols, …]) | 从文件路径加载 SPSS 文件,返回一个 DataFrame。 |
---|
SQL
read_sql_table (table_name, con[, schema, …]) | 将 SQL 数据库表读取为 DataFrame。 |
---|---|
read_sql_query (sql, con[, index_col, …]) | 将 SQL 查询读取为 DataFrame。 |
read_sql (sql, con[, index_col, …]) | 将 SQL 查询或数据库表读取为 DataFrame。 |
DataFrame.to_sql (name, con, *[, schema, …]) | 将存储在 DataFrame 中的记录写入 SQL 数据库。 |
Google BigQuery
read_gbq (query[, project_id, index_col, …]) | (已弃用) 从 Google BigQuery 加载数据。 |
---|
STATA
read_stata (filepath_or_buffer, *[, …]) | 将 Stata 文件读取为 DataFrame。 |
---|---|
DataFrame.to_stata (path, *[, convert_dates, …]) | 将 DataFrame 对象导出为 Stata dta 格式。 |
StataReader.data_label | 返回 Stata 文件的数据标签。 |
StataReader.value_labels () | 返回一个嵌套字典,将每个变量名与其值和标签关联起来。 |
StataReader.variable_labels () | 返回一个将每个变量名与相应标签关联起来的字典。 |
StataWriter.write_file () | 将 DataFrame 对象导出为 Stata dta 格式。 |
pandas.read_pickle
原文:
pandas.pydata.org/docs/reference/api/pandas.read_pickle.html
pandas.read_pickle(filepath_or_buffer, compression='infer', storage_options=None)
从文件加载腌制的 pandas 对象(或任何对象)。
警告
从不受信任的来源加载腌制数据可能不安全。请参见这里。
参数:
filepath_or_bufferstr、路径对象或类文件对象
字符串、路径对象(实现 os.PathLike[str]
)或实现二进制 readlines()
函数的类文件对象。也接受 URL。URL 不限于 S3 和 GCS。
compressionstr 或 dict,默认为 ‘infer’
用于在磁盘数据上进行即时解压缩。如果 ‘infer’ 并且 ‘filepath_or_buffer’ 是类似路径的对象,则从以下扩展名检测压缩:‘.gz’、‘.bz2’、‘.zip’、‘.xz’、‘.zst’、‘.tar’、‘.tar.gz’、‘.tar.xz’ 或 ‘.tar.bz2’(否则不压缩)。如果使用 'zip'
或 'tar'
,ZIP 文件必须只包含一个要读取的数据文件。设置为 None
以不进行解压缩。也可以是一个字典,其中键 'method'
设置为其中之一 {'zip'
、'gzip'
、'bz2'
、'zstd'
、'xz'
、'tar'
},其他键值对将转发到 zipfile.ZipFile
、gzip.GzipFile
、bz2.BZ2File
、zstandard.ZstdDecompressor
、lzma.LZMAFile
或 tarfile.TarFile
。例如,以下内容可用于通过自定义压缩字典进行 Zstandard 解压缩:compression={'method': 'zstd', 'dict_data': my_compression_dict}
。
1.5.0 版本新增:增加了对 .tar 文件的支持。
1.4.0 版本更改:增加了 Zstandard 支持。
storage_optionsdict,可选
适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发到 urllib.request.Request
。对于其他 URL(例如以 “s3://” 和 “gcs://” 开头的 URL),键值对将转发到 fsspec.open
。请参阅 fsspec
和 urllib
了解更多详细信息,并查看有关存储选项的更多示例,请参考这里。
返回:
与文件中存储的对象相同类型
另请参阅
DataFrame.to_pickle
将 DataFrame 对象腌制(序列化)到文件。
Series.to_pickle
将 Series 对象腌制(序列化)到文件。
read_hdf
读取 HDF5 文件到 DataFrame。
read_sql
读取 SQL 查询或数据库表到 DataFrame。
read_parquet
加载 parquet 对象,返回一个 DataFrame。
注意事项
read_pickle 仅在对象使用 to_pickle 序列化时才保证向后兼容到 pandas 0.20.3。
示例
>>> original_df = pd.DataFrame(
... {"foo": range(5), "bar": range(5, 10)}
... )
>>> original_df
foo bar
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
>>> pd.to_pickle(original_df, "./dummy.pkl")
>>> unpickled_df = pd.read_pickle("./dummy.pkl")
>>> unpickled_df
foo bar
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
pandas.DataFrame.to_pickle
原文:
pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_pickle.html
DataFrame.to_pickle(path, *, compression='infer', protocol=5, storage_options=None)
将对象序列化为文件。
参数:
pathstr, path object, or file-like object
字符串、路径对象(实现了os.PathLike[str]
)或实现了二进制write()
函数的文件对象。要存储 pickled 对象的文件路径。
compressionstr or dict, default ‘infer’
用于输出数据的即时压缩。如果是’infer’并且’path’是路径形式的,则从以下扩展名检测压缩:‘.gz’、‘.bz2’、‘.zip’、‘.xz’、‘.zst’、‘.tar’、‘.tar.gz’、‘.tar.xz’或’.tar.bz2’(否则不压缩)。设置为None
以不压缩。也可以是一个字典,其中键'method'
设置为其中一个{'zip'
、'gzip'
、'bz2'
、'zstd'
、'xz'
、'tar'
},其他键值对将转发到zipfile.ZipFile
、gzip.GzipFile
、bz2.BZ2File
、zstandard.ZstdCompressor
、lzma.LZMAFile
或tarfile.TarFile
。例如,可以传递以下内容以进行更快的压缩并创建可重现的 gzip 存档:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}
。
1.5.0 版本新增支持.tar 文件。
protocolint
指示 pickler 应使用的协议,默认为 HIGHEST_PROTOCOL(参见[1]第 12.1.2 段)。可能的值为 0、1、2、3、4、5。将协议参数设置为负值等效于将其值设置为 HIGHEST_PROTOCOL。
[1]
docs.python.org/3/library/pickle.html
.
storage_optionsdict, optional
特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发到urllib.request.Request
。对于其他 URL(例如以“s3://”和“gcs://”开头的 URL),键值对将转发到fsspec.open
。请参阅fsspec
和urllib
获取更多详情,并参考这里中有关存储选项的更多示例。
另请参阅
read_pickle
从文件中加载 pickle 的 pandas 对象(或任何对象)。
DataFrame.to_hdf
将 DataFrame 写入 HDF5 文件。
DataFrame.to_sql
将 DataFrame 写入 SQL 数据库。
DataFrame.to_parquet
将 DataFrame 写入二进制 Parquet 格式。
示例
>>> original_df = pd.DataFrame({"foo": range(5), "bar": range(5, 10)})
>>> original_df
foo bar
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
>>> original_df.to_pickle("./dummy.pkl")
>>> unpickled_df = pd.read_pickle("./dummy.pkl")
>>> unpickled_df
foo bar
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
pandas.read_table
原文:
pandas.pydata.org/docs/reference/api/pandas.read_table.html
pandas.read_table(filepath_or_buffer, *, sep=_NoDefault.no_default, delimiter=None, header='infer', names=_NoDefault.no_default, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=_NoDefault.no_default, skip_blank_lines=True, parse_dates=False, infer_datetime_format=_NoDefault.no_default, keep_date_col=_NoDefault.no_default, date_parser=_NoDefault.no_default, date_format=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, on_bad_lines='error', delim_whitespace=_NoDefault.no_default, low_memory=True, memory_map=False, float_precision=None, storage_options=None, dtype_backend=_NoDefault.no_default)
将通用分隔文件读入 DataFrame。
还支持可选地迭代或将文件分成块。
额外的帮助可以在IO 工具的在线文档中找到。
参数:
filepath_or_bufferstr,路径对象或类文件对象
任何有效的字符串路径都可以接受。字符串可以是 URL。有效的 URL 方案包括 http、ftp、s3、gs 和 file。对于文件 URL,期望有一个主机。本地文件可以是:file://localhost/path/to/table.csv。
如果要传递路径对象,pandas 接受任何os.PathLike
。
通过类文件对象,我们指的是具有read()
方法的对象,例如文件句柄(例如通过内置的open
函数)或StringIO
。
sepstr,默认为‘\t’(制表符)
要视为分隔符的字符或正则表达式模式。如果sep=None
,则 C 引擎无法自动检测分隔符,但 Python 解析引擎可以,这意味着将使用后者,并且 Python 的内置嗅探工具csv.Sniffer
将仅从文件的第一行自动检测分隔符。此外,长度大于 1 个字符且不同于'\s+'
的分隔符将被解释为正则表达式,并且还将强制使用 Python 解析引擎。请注意,正则表达式分隔符容易忽略带引号的数据。正则表达式示例:'\r\t'
。
delimiterstr,可选
sep
的别名。
headerint,int 序列,‘infer’或 None,默认为‘infer’
包含列标签并标记数据起始位置的行号(从零开始索引)。默认行为是推断列名:如果没有传递names
,则行为与header=0
相同,并且列名从文件的第一行推断出来;如果列名明确传递给names
,则行为与header=None
相同。显式传递header=0
以替换现有名称。标题可以是指定列的MultiIndex
的行位置的整数列表,例如[0, 1, 3]
。未指定的中间行将被跳过(例如,在此示例中跳过了 2)。请注意,如果skip_blank_lines=True
,此参数将忽略注释行和空行,因此header=0
表示数据的第一行而不是文件的第一行。
namesHashable 序列,可选
要应用的列标签序列。如果文件包含标题行,则应明确传递header=0
以覆盖列名。此列表中不允许重复项。
index_colHashable,Hashable 序列或 False,可选
作为行标签使用的列,标记为列标签或列索引。如果给出一系列标签或索引,将为行标签形成 MultiIndex
。
注意:index_col=False
可以用来强制 pandas 不 将第一列用作索引,例如,当您有一个每行末尾都有分隔符的格式错误文件时。
usecols可哈希序列或可调用对象,可选
要选择的列的子集,标记为列标签或列索引。如果类似列表,所有元素必须是位置的(即整数索引到文档列)或字符串,这些字符串对应于用户在 names
中提供的列名,或者从文档头行(s)中推断出的列名。如果给出了 names
,则不考虑文档头行(s)。例如,一个有效的类似列表的 usecols
参数将是 [0, 1, 2]
或 ['foo', 'bar', 'baz']
。元素顺序被忽略,所以 usecols=[0, 1]
和 [1, 0]
是相同的。要保留元素顺序的 DataFrame
实例化,请使用 pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']]
来按照 ['foo', 'bar']
顺序的列或 pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']]
为 ['bar', 'foo']
顺序。
如果可调用,将根据列名评估可调用函数,返回可调用函数评估为 True
的名称。一个有效的可调用参数示例是 lambda x: x.upper() in ['AAA', 'BBB', 'DDD']
。使用此参数会导致更快的解析时间和更低的内存使用。
dtypedtype 或 {可哈希 dtype} 字典,可选
要应用于整个数据集或单个列的数据类型。例如,{'a': np.float64, 'b': np.int32, 'c': 'Int64'}
使用 str
或 object
与合适的 na_values
设置一起来保留并不解释 dtype
。如果指定了 converters
,它们将被应用于 INSTEAD 的 dtype
转换。
自版本 1.5.0 新增:添加了对 defaultdict
的支持。指定一个 defaultdict
作为输入,其中默认值确定了未显式列出的列的 dtype
。
engine{‘c’, ‘python’, ‘pyarrow’},可选
要使用的解析引擎。C 和 pyarrow 引擎更快,而 python 引擎目前更完整。多线程目前只由 pyarrow 引擎支持。
自版本 1.4.0 新增:将‘pyarrow’引擎添加为 实验性 引擎,并且某些功能不受支持,或者可能不正确地使用此引擎。
converters{可哈希可调用对象} 字典,可选
用于转换指定列中值的函数。键可以是列标签或列索引。
true_values列表,可选
除了大小写变体的True
之外,还考虑为 True
的值。
false_values列表,可选
除了大小写变体的False
之外,还考虑为 False
的值。
skipinitialspacebool,默认为 False
在分隔符后跳过空格。
skiprowsint,int 列表或可调用,可选
要跳过的行号(从 0 开始)或文件开头要跳过的行数(int
)。
如果是可调用的,可调用函数将根据行索引进行评估,如果应跳过该行则返回True
,否则返回False
。一个有效的可调用参数示例是lambda x: x in [0, 2]
。
skipfooterint,默认为 0
要跳过的文件底部行数(使用engine='c'
时不支持)。
nrowsint,可选
要读取的文件行数。用于读取大文件的片段。
na_values可哈希,可迭代的可哈希或{可哈希迭代}的字典,可选
附加的字符串以识别为NA
/NaN
。如果传递了dict
,则特定于每列的NA
值。默认情况下,以下值被解释为NaN
:“ “, “#N/A”, “#N/A N/A”, “#NA”, “-1.#IND”, “-1.#QNAN”, “-NaN”, “-nan”, “1.#IND”, “1.#QNAN”, “”, “N/A”, NA
, “NULL”, NaN
, “None”, “n/a”, “nan”, “null”。
keep_default_nabool,默认为 True
是否在解析数据时包括默认的NaN
值。根据是否传入na_values
,行为如下:
-
如果
keep_default_na
为True
,并且指定了na_values
,则将na_values
附加到用于解析的默认NaN
值。 -
如果
keep_default_na
为True
,并且未指定na_values
,则仅使用默认的NaN
值进行解析。 -
如果
keep_default_na
为False
,并且指定了na_values
,则仅使用指定的na_values
值进行解析。 -
如果
keep_default_na
为False
,并且未指定na_values
,则不会将任何字符串解析为NaN
。
请注意,如果将na_filter
传递为False
,则将忽略keep_default_na
和na_values
参数。
na_filterbool,默认为 True
检测缺失值标记(空字符串和na_values
的值)。在没有任何NA
值的数据中,传递na_filter=False
可以提高读取大文件的性能。
verbosebool,默认为 False
指示放置在非数字列中的NA
值的数量。
自版本 2.2.0 起已弃用。
skip_blank_linesbool,默认为 True
如果为True
,则跳过空行而不解释为NaN
值。
parse_datesbool,可哈希列表,列表的列表或{哈希列表}的字典,默认为 False
行为如下:
-
bool
。如果为True
-> 尝试解析索引。注意:如果传递了date_format
或date_parser
参数,则会自动设置为True
。 -
int
或名称的list
。例如,如果[1, 2, 3]
-> 尝试将列 1、2、3 分别解析为单独的日期列。 -
list
的list
。例如,如果[[1, 3]]
-> 将列 1 和 3 合并并解析为单个日期列。在解析之前,值用空格连接。 -
dict
,例如{'foo' : [1, 3]}
-> 将列 1、3 解析为日期并称为‘foo’。在解析之前,值用空格连接。
如果某列或索引无法表示为datetime
数组,比如因为存在无法解析的值或时区混合,该列或索引将以object
数据类型不变返回。对于非标准的datetime
解析,请在read_csv()
之后使用to_datetime()
。
注意:存在用于 iso8601 格式日期的快速路径。
infer_datetime_formatbool,默认为 False
如果True
并且启用了parse_dates
,pandas 将尝试推断列中datetime
字符串的格式,如果可以推断出来,将切换到更快的解析方法。在某些情况下,这可以将解析速度提高 5-10 倍。
自版本 2.0.0 起弃用:严格版本的此参数现在是默认的,传递它没有任何效果。
keep_date_colbool,默认为 False
如果True
并且parse_dates
指定了合并多个列,则保留原始列。
date_parser可调用对象,可选
用于将一系列字符串列转换为datetime
实例数组的函数。默认使用dateutil.parser.parser
进行转换。pandas 将尝试以三种不同的方式调用date_parser
,如果发生异常,则继续下一个:1) 将一个或多个数组(由parse_dates
定义)作为参数传递;2) 将由parse_dates
定义的列中的字符串值(按行连接)合并为单个数组并传递;3) 对每一行使用一个或多个字符串(对应于由parse_dates
定义的列)调用date_parser
。
自版本 2.0.0 起弃用:改用date_format
,或者读取为object
,然后根据需要应用to_datetime()
。
date_formatstr 或列->格式的字典,可选
与parse_dates
结合使用时用于解析日期的格式。解析时间的 strftime,例如"%d/%m/%Y"
。有关更多选择的信息,请参阅strftime 文档,尽管请注意"%f"
将解析直到纳秒。你也可以传递:
-
“ISO8601”,解析任何ISO8601
时间字符串(不一定完全相同的格式);
-
“mixed”,为了单独推断每个元素的格式。这是有风险的,
你可能应该与 dayfirst 一起使用它。
版本 2.0.0 中的新功能。
dayfirstbool,默认为 False
DD/MM 格式日期,国际和欧洲格式。
cache_datesbool,默认为 True
如果True
,使用唯一的转换日期缓存来应用datetime
转换。在解析重复日期字符串时可能会产生显著的加速,特别是带有时区偏移的日期字符串。
iteratorbool,默认为 False
返回用于迭代或使用get_chunk()
获取块的TextFileReader
对象。
chunksizeint,可选
从文件中每块读取的行数。传递一个值会导致函数返回一个 TextFileReader
对象以进行迭代。有关 iterator
和 chunksize
的更多信息,请参阅 IO 工具文档。
compressionstr 或 dict,默认为 ‘infer’
用于在磁盘上的数据的即时解压缩。如果‘infer’并且‘filepath_or_buffer’是类似路径的,则从以下扩展名检测压缩:‘.gz’、‘.bz2’、‘.zip’、‘.xz’、‘.zst’、‘.tar’、‘.tar.gz’、‘.tar.xz’或‘.tar.bz2’(否则不压缩)。如果使用'zip'
或'tar'
,ZIP 文件必须只包含一个要读取的数据文件。设置为 None
不进行解压缩。也可以是一个字典,其中键 'method'
设置为其中一个 {'zip'
、'gzip'
、'bz2'
、'zstd'
、'xz'
、'tar'
},其他键值对被转发到 zipfile.ZipFile
、gzip.GzipFile
、bz2.BZ2File
、zstandard.ZstdDecompressor
、lzma.LZMAFile
或 tarfile.TarFile
。例如,可以通过以下方式传递用于 Zstandard 解压缩的自定义压缩字典:compression={'method': 'zstd', 'dict_data': my_compression_dict}
。
1.5.0 版本中的新功能:增加了对.tar 文件的支持。
在 1.4.0 版本中更改:增加了对 Zstandard 的支持。
thousandsstr(长度为 1),可选
数值中的千位分隔符。
decimalstr(长度为 1),默认为 ‘.’
将作为十进制点识别的字符(例如,使用‘,’表示欧洲数据)。
lineterminatorstr(长度为 1),可选
用于表示换行的字符。只有与 C 解析器一起使用时才有效。
quotecharstr(长度为 1),可选
用于表示引用项目的开始和结束的字符。引用项目可以包括 delimiter
,并且将被忽略。
quoting{0 或 csv.QUOTE_MINIMAL, 1 或 csv.QUOTE_ALL, 2 或 csv.QUOTE_NONNUMERIC, 3 或 csv.QUOTE_NONE},默认为 csv.QUOTE_MINIMAL
控制字段引号行为的 csv.QUOTE_*
常量。默认为 csv.QUOTE_MINIMAL
(即,0),表示仅引用包含特殊字符的字段(例如,在 quotechar
、delimiter
或 lineterminator
中定义的字符)。
doublequotebool,默认为 True
当指定了 quotechar
且 quoting
不是 QUOTE_NONE
时,指示是否将字段内连续的两个 quotechar
元素解释为单个 quotechar
元素。
escapecharstr(长度为 1),可选
用于转义其他字符的字符。
commentstr(长度为 1),可选
表示应不解析行剩余部分的字符。如果在行的开头找到,将完全忽略该行。此参数必须是单个字符。与空行一样(只要 skip_blank_lines=True
),完全被注释的行由参数 header
忽略,但不由 skiprows
忽略。例如,如果 comment='#'
,使用 header=0
解析 #empty\na,b,c\n1,2,3
将导致 'a,b,c'
被视为标题。
encodingstr,可选,默认为 ‘utf-8’
读取/写入 UTF 时要使用的编码(例如。'utf-8'
)。Python 标准编码列表。
encoding_errorsstr,可选,默认为‘strict’
如何处理编码错误。可能值列表。
从版本 1.3.0 开始的新功能。
dialectstr 或 csv.Dialect,可选
如果提供,此参数将覆盖以下参数的值(默认或非默认):delimiter
,doublequote
,escapechar
,skipinitialspace
,quotechar
和 quoting
。如果需要覆盖值,则将发出ParserWarning
。有关更多详细信息,请参阅 csv.Dialect
文档。
on_bad_lines{‘error’,‘warn’,‘skip’} 或 Callable,默认为‘error’
指定在遇到错误行(字段过多的行)时要执行的操作。允许的值有:
-
'error'
,当遇到错误行时引发异常。 -
'warn'
,在遇到错误行时引发警告并跳过该行。 -
'skip'
,在遇到错误行时跳过,而不引发或警告。
从版本 1.3.0 开始的新功能。
从版本 1.4.0 开始的新功能:
- 可调用函数,具有签名
(bad_line: list[str]) -> list[str] | None
,将处理单个错误行。bad_line
是由sep
分割的字符串列表。如果函数返回None
,则会忽略错误行。如果函数返回具有比预期更多元素的新的字符串list
,则会发出ParserWarning
,同时删除额外的元素。仅在engine='python'
时受支持。
从版本 2.2.0 开始更改:
- 当
engine='pyarrow'
时,具有如pyarrow 文档中描述的签名的可调用函数。
delim_whitespacebool,默认为 False
指定是否使用空白字符(例如。' '
或'\t'
)作为sep
分隔符。等效于设置sep='\s+'
。如果将此选项设置为True
,则不应传递任何内容给delimiter
参数。
自版本 2.2.0 起弃用:请改用sep="\s+"
。
low_memorybool,默认为 True
将文件分块内部处理,以降低解析时的内存使用,但可能导致混合类型推断。为了确保没有混合类型,要么设置为False
,要么使用dtype
参数指定类型。请注意,无论如何整个文件都会被读入单个DataFrame
中,可以使用chunksize
或iterator
参数以块返回数据。(仅在 C 解析器中有效)。
memory_mapbool,默认为 False
如果为filepath_or_buffer
提供了文件路径,则将文件对象直接映射到内存中,并直接从中访问数据。使用此选项可以提高性能,因为不再有任何 I/O 开销。
float_precision{‘high’,‘legacy’,‘round_trip’},可选
指定 C 引擎应使用哪个转换器处理浮点值。选项为None
或'high'
表示普通转换器,'legacy'
表示原始较低精度的 pandas 转换器,'round_trip'
表示往返转换器。
storage_options字典,可选
针对特定存储连接有额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为头部选项转发给urllib.request.Request
。对于其他 URL(例如以“s3://”和“gcs://”开头的 URL),键值对将转发给fsspec.open
。更多详情请参阅fsspec
和urllib
,有关存储选项的更多示例请参考此处。
dtype_backend{‘numpy_nullable’, ‘pyarrow’},默认为‘numpy_nullable’
应用于结果DataFrame
的后端数据类型(仍处于实验阶段)。行为如下:
-
"numpy_nullable"
:返回支持可空 dtype 的DataFrame
(默认值)。 -
"pyarrow"
:返回由 pyarrow 支持的可空ArrowDtype
DataFrame。
新功能在 2.0 版本中新增。
返回:
DataFrame 或 TextFileReader
逗号分隔值(csv)文件被返回为带有标记轴的二维数据结构。
另请参见
DataFrame.to_csv
将 DataFrame 写入逗号分隔值(csv)文件。
read_csv
将逗号分隔值(csv)文件读入 DataFrame。
read_fwf
将一张固定宽度格式的表格行读入 DataFrame。
示例
>>> pd.read_table('data.csv')
pandas.read_csv
原文:
pandas.pydata.org/docs/reference/api/pandas.read_csv.html
pandas.read_csv(filepath_or_buffer, *, sep=_NoDefault.no_default, delimiter=None, header='infer', names=_NoDefault.no_default, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=_NoDefault.no_default, skip_blank_lines=True, parse_dates=None, infer_datetime_format=_NoDefault.no_default, keep_date_col=_NoDefault.no_default, date_parser=_NoDefault.no_default, date_format=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, on_bad_lines='error', delim_whitespace=_NoDefault.no_default, low_memory=True, memory_map=False, float_precision=None, storage_options=None, dtype_backend=_NoDefault.no_default)
将逗号分隔值(csv)文件读入 DataFrame。
还支持将文件迭代或分块。
在IO 工具的在线文档中可以找到其他帮助。
参数:
filepath_or_bufferstr,路径对象或类文件对象
任何有效的字符串路径均可接受。字符串可以是 URL。有效的 URL 方案包括 http、ftp、s3、gs 和 file。对于文件 URL,期望有一个主机。本地文件可以是:file://localhost/path/to/table.csv。
如果要传递路径对象,则 pandas 接受任何 os.PathLike
。
通过类文件对象,我们指的是具有 read()
方法的对象,例如文件句柄(例如通过内置的 open
函数)或 StringIO
。
sepstr,默认为‘,’
字符或正则表达式模式,用于视为分隔符。如果sep=None
,C 引擎无法自动检测分隔符,但 Python 解析引擎可以,这意味着后者将被使用,并且 Python 的内置嗅探工具 csv.Sniffer
可以从文件的第一行自动检测到分隔符。此外,长度大于 1 且不同于 '\s+'
的分隔符将被解释为正则表达式,并且还会强制使用 Python 解析引擎。请注意,正则表达式分隔符容易忽略带引号的数据。正则表达式示例:'\r\t'
。
delimiterstr,可选
sep
的别名。
headerint、int 序列、‘infer’ 或 None,默认为‘infer’
包含列标签并标记数据开始的行号(从零开始计数)。默认行为是推断列名:如果没有传递names
,则行为与 header=0
相同,并且列名从文件的第一行推断出来;如果列名明确传递给 names
,则行为与 header=None
相同。显式传递 header=0
以能够替换现有名称。标头可以是指定列的 MultiIndex
的行位置的整数列表,例如 [0, 1, 3]
。未指定的中间行将被跳过(例如在此示例中跳过了 2)。请注意,如果 skip_blank_lines=True
,则此参数将忽略注释行和空行,因此 header=0
表示数据的第一行而不是文件的第一行。
names可哈希序列,可选
应用的列标签序列。如果文件包含标题行,则应显式传递 header=0
以覆盖列名。此列表中不允许重复项。
index_col可哈希、可哈希序列或 False,可选
列作为行标签使用的列,可以用列标签或列索引表示。如果给定一系列标签或索引,将为行标签形成MultiIndex
。
注意:index_col=False
可用于强制 pandas不使用第一列作为索引,例如,当您有一个每行末尾带有分隔符的格式不正确的文件时。
usecols可哈希序列或可调用对象,可选
要选择的列的子集,可以用列标签或列索引表示。如果类似列表,所有元素必须是位置的(即整数索引到文档列)或与用户在names
中提供的列名对应的字符串,或从文档标题行中推断出来的。如果给定了names
,则不考虑文档标题行。例如,一个有效的类似列表的usecols
参数可以是[0, 1, 2]
或['foo', 'bar', 'baz']
。元素顺序被忽略,因此usecols=[0, 1]
与[1, 0]
相同。要保留元素顺序实例化DataFrame
,请使用pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']]
以['foo', 'bar']
顺序的列或pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']]
以['bar', 'foo']
顺序。
如果可调用,将对列名评估可调用函数,返回可调用函数评估为True
的名称。一个有效的可调用参数示例是lambda x: x.upper() in ['AAA', 'BBB', 'DDD']
。使用此参数会导致更快的解析时间和更低的内存使用。
dtypedtype 或{可哈希 dtype}字典,可选
要应用于整个数据集或单独列的数据类型。例如,{'a': np.float64, 'b': np.int32, 'c': 'Int64'}
使用str
或object
与适当的na_values
设置一起,以保留并不解释dtype
。如果指定了converters
,它们将被应用于dtype
转换的替代。
新版本 1.5.0 中:添加了对defaultdict
的支持。指定一个defaultdict
作为输入,其中默认值确定未明确列出的列的dtype
。
engine{‘c’, ‘python’, ‘pyarrow’},可选
要使用的解析引擎。C 和 pyarrow 引擎更快,而 python 引擎目前更完整。目前只有 pyarrow 引擎支持多线程。
新版本 1.4.0 中:添加了‘pyarrow’引擎作为实验性引擎,并且某些功能不受支持,或者在此引擎下可能无法正常工作。
converters{可哈希可调用}字典,可选
用于转换指定列中的值的函数。键可以是列标签或列索引。
true_values列表,可选
除了不区分大小写的True
的变体外,要考虑为True
的值。
false_values列表,可选
除了不区分大小写的False
的变体外,要考虑为False
的值。
skipinitialspacebool,默认为 False
在分隔符后跳过空格。
skiprowsint、int 列表或可调用对象,可选
要跳过的行号(从 0 开始索引)或文件开头要跳过的行数(int
)。
如果是可调用的,可调用函数将根据行索引进行评估,如果应跳过该行则返回True
,否则返回False
。一个有效的可调用参数示例是lambda x: x in [0, 2]
。
skipfooterint,默认为 0
要跳过文件底部的行数(不支持engine='c'
)。
nrowsint,可选
要读取的文件行数。用于读取大文件的片段。
na_valuesHashable、Hashable 的 Iterable 或{HashableIterable}字典,可选
要识别为NA
/NaN
的其他字符串。如果传递了dict
,则为每列指定特定的NA
值。默认情况下,以下值被解释为NaN
:“ “, “#N/A”, “#N/A N/A”, “#NA”, “-1.#IND”, “-1.#QNAN”, “-NaN”, “-nan”, “1.#IND”, “1.#QNAN”, “”, “N/A”, NA
, “NULL”, NaN
, “None”, “n/a”, “nan”, “null “。
keep_default_nabool,默认为 True
在解析数据时是否包括默认的NaN
值。根据是否传入na_values
,行为如下:
-
如果
keep_default_na
为True
,并且指定了na_values
,则na_values
将附加到用于解析的默认NaN
值。 -
如果
keep_default_na
为True
,并且未指定na_values
,则只使用默认的NaN
值进行解析。 -
如果
keep_default_na
为False
,并且指定了na_values
,则只有指定的na_values
值会被用于解析。 -
如果
keep_default_na
为False
,并且未指定na_values
,则不会将任何字符串解析为NaN
。
请注意,如果将na_filter
传入为False
,则keep_default_na
和na_values
参数将被忽略。
na_filterbool,默认为 True
检测缺失值标记(空字符串和na_values
的值)。在没有任何NA
值的数据中,传入na_filter=False
可以提高读取大文件的性能。
verbosebool,默认为 False
指示非数字列中放置的NA
值的数量。
自版本 2.2.0 起已弃用。
skip_blank_linesbool,默认为 True
如果为True
,则跳过空行而不是解释为NaN
值。
parse_datesbool、Hashable 列表、列表的列表或{Hashablelist}字典,默认为 False
行为如下:
-
bool
。如果为True
-> 尝试解析索引。注意:如果传递了date_format
或date_parser
参数,则会自动设置为True
。 -
int
或名称的list
。例如,如果[1, 2, 3]
-> 尝试将列 1、2、3 分别解析为单独的日期列。 -
list
的list
。例如,如果[[1, 3]]
-> 将列 1 和 3 组合并解析为单个日期列。在解析之前,值将用空格连接起来。 -
dict
,例如{'foo' : [1, 3]}
-> 将列 1、3 解析为日期并命名为‘foo’。在解析之前,值将用空格连接起来。
如果某列或索引无法表示为datetime
数组,例如因为存在无法解析的值或时区混合,该列或索引将按原样返回为object
数据类型。对于非标准datetime
解析,请在read_csv()
之后使用to_datetime()
。
注意:存在用于 iso8601 格式的快速路径。
infer_datetime_formatbool,默认值为 False
如果True
并且启用了parse_dates
,pandas 将尝试推断列中datetime
字符串的格式,并且如果可以推断,则切换到更快的解析方法。在某些情况下,这可能会将解析速度提高 5-10 倍。
自 2.0.0 版本起已弃用:该参数的严格版本现在是默认值,传递它将不会产生任何效果。
keep_date_colbool,默认值为 False
如果True
并且parse_dates
指定合并多个列,则保留原始列。
date_parserCallable,可选
用于将字符串列序列转换为datetime
实例数组的函数。默认使用dateutil.parser.parser
进行转换。 pandas 将尝试以三种不同的方式调用date_parser
,如果发生异常,则继续下一个:1)将一个或多个数组(如parse_dates
定义的)作为参数传递;2)将由parse_dates
定义的列中的字符串值(按行)串联成单个数组并传递;并且 3)对每一行使用一个或多个字符串(对应于由parse_dates
定义的列)调用一次date_parser
。
自 2.0.0 版本起已弃用:请改用date_format
,或者读取为object
然后根据需要应用to_datetime()
。
date_formatstr 或列->格式的字典,可选
与parse_dates
一起使用时用于解析日期的格式。解析时间的 strftime,例如"%d/%m/%Y"
。有关选项的更多信息,请参阅strftime documentation,尽管请注意"%f"
将解析直到纳秒。您还可以传递:
-
“ISO8601”,以解析任何ISO8601
时间字符串(不一定完全相同的格式);
-
“mixed”,为每个元素单独推断格式。这很冒险,
您应该与 dayfirst 一起使用它。
2.0.0 版本中的新功能。
dayfirstbool,默认值为 False
DD/MM 格式日期,国际和欧洲格式。
cache_datesbool,默认值为 True
如果为True
,则使用唯一的转换日期缓存应用datetime
转换。当解析重复的日期字符串时,特别是带有时区偏移的日期字符串,可能会产生显着的加速。
iteratorbool,默认值为 False
返回用于迭代或使用get_chunk()
获取块的TextFileReader
对象。
chunksizeint,可选
从文件中每块读取的行数。传递一个值将导致函数返回一个TextFileReader
对象进行迭代。有关iterator
和chunksize
的更多信息,请参阅IO 工具文档。
compressionstr 或 dict,默认‘infer’
用于在磁盘上的数据进行即时解压缩。如果‘infer’和‘filepath_or_buffer’类似路径,则从以下扩展名检测压缩:‘.gz’、‘.bz2’、‘.zip’、‘.xz’、‘.zst’、‘.tar’、‘.tar.gz’、‘.tar.xz’或‘.tar.bz2’(否则不压缩)。如果使用'zip'
或'tar'
,ZIP 文件必须只包含一个要读取的数据文件。设置为None
表示不解压缩。也可以是一个字典,其中键'method'
设置为其中之一{'zip'
、'gzip'
、'bz2'
、'zstd'
、'xz'
、'tar'
},其他键值对转发到zipfile.ZipFile
、gzip.GzipFile
、bz2.BZ2File
、zstandard.ZstdDecompressor
、lzma.LZMAFile
或tarfile.TarFile
。例如,可以通过以下方式传递用于 Zstandard 解压缩的自定义压缩字典:compression={'method': 'zstd', 'dict_data': my_compression_dict}
。
1.5.0 版本中的新功能:添加对.tar 文件的支持。
1.4.0 版本中的更改:Zstandard 支持。
thousandsstr (length 1), optional
用作数字值中的千位分隔符的字符。
decimalstr (length 1), default ‘.’
用作小数点的字符(例如,对于欧洲数据使用‘,’)。
lineterminatorstr (length 1), optional
用于表示换行的字符。仅与 C 解析器有效。
quotecharstr (length 1), optional
用于表示引用项的起始和结束的字符。引用项可以包括delimiter
,并且将被忽略。
quoting{0 或 csv.QUOTE_MINIMAL,1 或 csv.QUOTE_ALL,2 或 csv.QUOTE_NONNUMERIC,3 或 csv.QUOTE_NONE},默认 csv.QUOTE_MINIMAL
控制字段引用行为的csv.QUOTE_*
常量。默认值为csv.QUOTE_MINIMAL
(即 0),这意味着只有包含特殊字符的字段被引用(例如,在quotechar
、delimiter
或lineterminator
中定义的字符)。
doublequotebool, default True
当指定quotechar
且quoting
不是QUOTE_NONE
时,指示是否将字段内连续的两个quotechar
元素解释为单个quotechar
元素。
escapecharstr (length 1), optional
用于转义其他字符的字符。
commentstr (length 1), optional
表示该行剩余部分不应解析的字符。如果在行的开头找到该字符,则整行将被忽略。此参数必须是单个字符。与空行一样(只要skip_blank_lines=True
),完全注释的行被参数header
忽略,但不被skiprows
忽略。例如,如果comment='#'
,使用header=0
解析#empty\na,b,c\n1,2,3
将导致将'a,b,c'
视为标题。
encodingstr, optional, default ‘utf-8’
读取/写入时要使用的 UTF 编码(例如’utf-8’)。Python 标准编码列表。
编码错误str,可选,默认为’strict’
处理编码错误的方式。可能的值列表。
自版本 1.3.0 起新功能。
方言str 或 csv.Dialect,可选
如果提供了此参数,它将覆盖以下参数的值(默认值或非默认值):delimiter
、doublequote
、escapechar
、skipinitialspace
、quotechar
和quoting
。如果需要覆盖值,将发出ParserWarning
。有关更多详细信息,请参阅csv.Dialect
文档。
on_bad_lines{‘error’, ‘warn’, ‘skip’}或可调用,默认为’error’
指定在遇到坏行(字段过多的行)时要执行的操作。允许的值为:
-
'error'
,遇到坏行时引发异常。 -
'warn'
,遇到坏行时发出警告并跳过该行。 -
'skip'
,遇到坏行时跳过而不发出或警告。
自版本 1.3.0 起新功能。
自版本 1.4.0 起新功能:
- 具有签名
(bad_line: list[str]) -> list[str] | None
的可调用函数,将处理单个坏行。bad_line
是由sep
分割的字符串列表。如果函数返回None
,则将忽略坏行。如果函数返回具有比预期更多元素的新list
字符串,则将发出ParserWarning
,同时丢弃额外的元素。仅在engine='python'
时支持
自版本 2.2.0 起更改:
- 当
engine='pyarrow'
时,具有pyarrow 文档中描述的签名的可调用函数。
delim_whitespacebool,默认为 False
指定是否使用空格(例如' '
或'\t'
)作为sep
分隔符。等同于设置sep='\s+'
。如果将此选项设置为True
,则不应为delimiter
参数传递任何内容。
自版本 2.2.0 起弃用:改用sep="\s+"
。
low_memorybool,默认为 True
在块中内部处理文件,导致解析时使用更少的内存,但可能混合类型推断。为确保没有混合类型,要么设置为False
,要么使用dtype
参数指定类型。请注意,整个文件都会被读入单个DataFrame
中,使用chunksize
或iterator
参数以返回以块形式返回数据。 (仅与 C 解析器有效)。
memory_mapbool,默认为 False
如果为filepath_or_buffer
提供了文件路径,则将文件对象直接映射到内存并直接从中访问数据。使用此选项可以提高性能,因为不再有任何 I/O 开销。
float_precision{‘high’, ‘legacy’, ‘round_trip’},可选
指定 C 引擎应使用哪个转换器处理浮点值。选项为 None
或 'high'
表示普通转换器,'legacy'
表示原始的较低精度 pandas 转换器,'round_trip'
表示往返转换器。
storage_optionsdict,可选
适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发给 urllib.request.Request
。对于其他 URL(例如以 “s3://” 和 “gcs://” 开头的 URL),键值对将转发给 fsspec.open
。请参阅 fsspec
和 urllib
以获取更多详细信息,并有关存储选项的更多示例,请参考这里。
dtype_backend{‘numpy_nullable’, ‘pyarrow’},默认为 ‘numpy_nullable’
应用于生成的 DataFrame
的后端数据类型(仍处于实验阶段)。行为如下:
-
"numpy_nullable"
:返回由可空数据类型支持的DataFrame
(默认)。 -
"pyarrow"
:返回由 pyarrow 支持的可空ArrowDtype
DataFrame。
版本 2.0 中的新功能。
返回:
DataFrame 或 TextFileReader
逗号分隔值(csv)文件作为带有标记轴的二维数据结构返回。
另请参阅
DataFrame.to_csv
将 DataFrame 写入逗号分隔值(csv)文件。
read_table
将通用分隔文件读入 DataFrame。
read_fwf
将固定宽度格式行的表读入 DataFrame。
示例
>>> pd.read_csv('data.csv')
pandas.DataFrame.to_csv
原文:
pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
DataFrame.to_csv(path_or_buf=None, *, sep=',', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, mode='w', encoding=None, compression='infer', quoting=None, quotechar='"', lineterminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.', errors='strict', storage_options=None)
将对象写入逗号分隔值(csv)文件。
参数:
path_or_bufstr,路径对象,类似文件对象,或 None,默认为 None
字符串、路径对象(实现 os.PathLike[str])或实现 write()函数的类似文件对象。如果为 None,则结果将作为字符串返回。如果传递了一个非二进制文件对象,它应该使用 newline=’’打开,禁用通用换行符。如果传递了一个二进制文件对象,mode 可能需要包含‘b’。
sepstr,默认为‘,’
长度为 1 的字符串。输出文件的字段分隔符。
na_repstr,默认为‘’
缺失数据表示。
float_formatstr,Callable,默认为 None
浮点数的格式化字符串。如果给定了一个可调用对象,它将优先于其他数字格式化参数,如小数。
columns序列,可选
要写入的列。
headerbool 或 str 列表,默认为 True
写出列名。如果给出一个字符串列表,则假定为列名的别名。
indexbool,默认为 True
写入行名称(索引)。
index_labelstr 或序列,或 False,默认为 None
如果需要,用作索引列的列标签。如果给出 None,并且 header 和 index 为 True,则使用索引名称。如果对象使用 MultiIndex,则应给出一个序列。如果为 False,则不打印索引名称的字段。在 R 中更容易导入,请使用 index_label=False。
mode{‘w’, ‘x’, ‘a’},默认为‘w’
转发到 open(mode=)或 fsspec.open(mode=)以控制文件打开。典型值包括:
-
‘w’,首先截断文件。
-
‘x’,独占创建,如果文件已经存在则失败。
-
‘a’,如果文件存在,则追加到文件末尾。
encodingstr,可选
表示要在输出文件中使用的编码的字符串,默认为‘utf-8’。如果 path_or_buf 是非二进制文件对象,则不支持编码。
compressionstr 或 dict,默认为‘infer’
用于输出数据的即时压缩。如果‘infer’和‘path_or_buf’是类似路径的,则从以下扩展名中检测压缩:‘.gz’、‘.bz2’、‘.zip’、‘.xz’、‘.zst’、‘.tar’、‘.tar.gz’、‘.tar.xz’或‘.tar.bz2’(否则不压缩)。设置为None
以不压缩。也可以是一个字典,其中键'method'
设置为其中一个{'zip'
、'gzip'
、'bz2'
、'zstd'
、'xz'
、'tar'
},其他键值对转发到zipfile.ZipFile
、gzip.GzipFile
、bz2.BZ2File
、zstandard.ZstdCompressor
、lzma.LZMAFile
或tarfile.TarFile
。例如,可以传递以下内容以获得更快的压缩并创建可重现的 gzip 存档:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}
。
1.5.0 版中的新功能:增加了对.tar 文件的支持。
可以是一个带有‘method’键作为压缩模式和其他条目作为附加压缩选项的字典,如果压缩模式是‘zip’。
支持将压缩选项作为字典中的键传递,压缩模式为‘gzip’、‘bz2’、‘zstd’和‘zip’。
quoting csv 模块中的可选常量
默认为 csv.QUOTE_MINIMAL。如果设置了 float_format,则浮点数将转换为字符串,因此 csv.QUOTE_NONNUMERIC 将将它们视为非数字。
quotechar str,默认为‘"’
长度为 1 的字符串。用于引用字段的字符。
lineterminator str,可选
用于输出文件的换行字符或字符序列。默认为 os.linesep,这取决于调用此方法的操作系统(对于 linux 为’\n’,对于 Windows 为‘\r\n’)。
1.5.0 版更改:以前是 line_terminator,为与 read_csv 和标准库‘csv’模块保持一致而更改。
chunksize int 或 None
每次写入的行数。
date_format str,默认为 None
用于 datetime 对象的格式字符串。
doublequote bool,默认为 True
控制在字段内引用 quotechar 的引用。
escapechar str,默认为 None
长度为 1 的字符串。适当时用于转义 sep 和 quotechar 的字符。
decimal str,默认为‘.’
作为十进制分隔符识别的字符。例如,对于欧洲数据,请使用“,”。
errors str,默认为‘strict’
指定如何处理编码和解码错误。有关选项的完整列表,请参阅 open()
的 errors 参数。
storage_options dict,可选
特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发给urllib.request.Request
。对于其他 URL(例如以“s3://”和“gcs://”开头的 URL),键值对将转发给fsspec.open
。有关更多详细信息,请参阅fsspec
和urllib
,有关存储选项的更多示例,请参阅此处。
返回:
None 或 str
如果 path_or_buf 为 None,则将生成的 csv 格式作为字符串返回。否则返回 None。
另请参阅
read_csv
将 CSV 文件加载到 DataFrame 中。
to_excel
将 DataFrame 写入 Excel 文件。
示例
创建包含无索引的‘df’的‘out.csv’
>>> df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
... 'mask': ['red', 'purple'],
... 'weapon': ['sai', 'bo staff']})
>>> df.to_csv('out.csv', index=False)
创建包含‘out.csv’的‘out.zip’
>>> df.to_csv(index=False)
'name,mask,weapon\nRaphael,red,sai\nDonatello,purple,bo staff\n'
>>> compression_opts = dict(method='zip',
... archive_name='out.csv')
>>> df.to_csv('out.zip', index=False,
... compression=compression_opts)
要将 csv 文件写入新文件夹或嵌套文件夹,您首先需要使用 Pathlib 或 os 创建它:
>>> from pathlib import Path
>>> filepath = Path('folder/subfolder/out.csv')
>>> filepath.parent.mkdir(parents=True, exist_ok=True)
>>> df.to_csv(filepath)
>>> import os
>>> os.makedirs('folder/subfolder', exist_ok=True)
>>> df.to_csv('folder/subfolder/out.csv')
pandas.read_fwf
原文:
pandas.pydata.org/docs/reference/api/pandas.read_fwf.html
pandas.read_fwf(filepath_or_buffer, *, colspecs='infer', widths=None, infer_nrows=100, dtype_backend=_NoDefault.no_default, iterator=False, chunksize=None, **kwds)
将固定宽度格式的行的表读入 DataFrame。
还支持可选地迭代或将文件分成块。
可在IO 工具的在线文档中找到更多帮助。
参数:
filepath_or_bufferstr,路径对象或类似文件的对象
字符串,路径对象(实现os.PathLike[str]
),或实现文本read()
函数的类似文件的对象。字符串可以是 URL。有效的 URL 方案包括 http,ftp,s3 和文件。对于文件 URL,期望有一个主机。本地文件可以是:file://localhost/path/to/table.csv
。
colspecs元组列表(int,int)或‘infer’。可选
一个元组列表,给出每行固定宽度字段的范围作为半开区间(即,from,to[)。字符串值‘infer’可用于指示解析器尝试从未通过 skiprows 跳过的数据的前 100 行中检测列规范(默认值=‘infer’)。
widths整数列表,可选
一个字段宽度列表,如果间隔是连续的,可以代替‘colspecs’使用。
infer_nrows整数,默认值 100
让解析器确定 colspecs 时要考虑的行数。
dtype_backend{‘numpy_nullable’,‘pyarrow’},默认值‘numpy_nullable’
应用于结果[DataFrame
的后端数据类型(仍处于实验阶段)。行为如下:
-
"numpy_nullable"
:返回支持可空 dtype 的DataFrame
(默认)。 -
"pyarrow"
:返回支持 pyarrow 的可空ArrowDtype
DataFrame。
版本 2.0 中的新功能。
****kwds**可选
可以将可选关键字参数传递给TextFileReader
。
返回:
DataFrame 或 TextFileReader
逗号分隔值(csv)文件作为带有标记轴的二维数据结构返回。
另请参见
DataFrame.to_csv
将 DataFrame 写入逗号分隔值(csv)文件。
read_csv
将逗号分隔值(csv)文件读入 DataFrame。
示例
>>> pd.read_fwf('data.csv')
pandas.read_clipboard
原文:
pandas.pydata.org/docs/reference/api/pandas.read_clipboard.html
pandas.read_clipboard(sep='\\s+', dtype_backend=_NoDefault.no_default, **kwargs)
从剪贴板读取文本并传递给read_csv()
。
解析剪贴板内容,类似于使用read_csv()
解析 CSV 文件。
参数:
sepstr,默认为‘\s+’
字符串或正则表达式分隔符。默认值为’\s+',表示一个或多个空白字符。
dtype_backend{‘numpy_nullable’, ‘pyarrow’},默认为‘numpy_nullable’
应用于结果DataFrame
的后端数据类型(仍处于实验阶段)。行为如下:
-
"numpy_nullable"
:返回基于 nullable-dtype 的DataFrame
(默认)。 -
"pyarrow"
:返回基于 pyarrow 的 nullableArrowDtype
DataFrame。
版本 2.0 中的新功能。
**kwargs
查看read_csv()
获取完整参数列表。
返回:
DataFrame
一个解析后的DataFrame
对象。
另请参阅
将对象复制到系统剪贴板。
从逗号分隔值(csv)文件读取到 DataFrame。
将固定宽度格式的行表读入 DataFrame。
示例
>>> df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=['A', 'B', 'C'])
>>> df.to_clipboard()
>>> pd.read_clipboard()
A B C
0 1 2 3
1 4 5 6
pandas.DataFrame.to_clipboard
原文:
pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_clipboard.html
DataFrame.to_clipboard(*, excel=True, sep=None, **kwargs)
将对象复制到系统剪贴板。
将对象的文本表示写入系统剪贴板。例如,这可以粘贴到 Excel 中。
参数:
excelbool,默认为 True
以 csv 格式生成输出,便于粘贴到 excel 中。
-
True,使用提供的分隔符进行 csv 粘贴。
-
False,将对象的字符串表示写入剪贴板。
sepstr,默认为'\t'
字段分隔符。
**kwargs
这些参数将传递给 DataFrame.to_csv。
另请参阅
DataFrame.to_csv
将 DataFrame 写入逗号分隔值(csv)文件。
read_clipboard
从剪贴板读取文本并传递给 read_csv。
注意
您平台的要求。
- Linux:xclip,或 xsel(带有 PyQt4 模块)
- Windows:无
- macOS:无
该方法使用了为包 pyperclip 开发的进程。在示例中给出了渲染任何输出字符串格式的解决方案。
示例
复制 DataFrame 的内容到剪贴板。
>>> df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=['A', 'B', 'C'])
>>> df.to_clipboard(sep=',')
... # Wrote the following to the system clipboard:
... # ,A,B,C
... # 0,1,2,3
... # 1,4,5,6
我们可以通过传递关键字 index 并将其设置为 false 来省略索引。
>>> df.to_clipboard(sep=',', index=False)
... # Wrote the following to the system clipboard:
... # A,B,C
... # 1,2,3
... # 4,5,6
使用原始的 pyperclip 包进行任何字符串输出格式。
import pyperclip
html = df.style.to_html()
pyperclip.copy(html)
pandas.read_excel
原文:
pandas.pydata.org/docs/reference/api/pandas.read_excel.html
pandas.read_excel(io, sheet_name=0, *, header=0, names=None, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, parse_dates=False, date_parser=_NoDefault.no_default, date_format=None, thousands=None, decimal='.', comment=None, skipfooter=0, storage_options=None, dtype_backend=_NoDefault.no_default, engine_kwargs=None)
将 Excel 文件读入pandas
的DataFrame
。
支持从本地文件系统或 URL 读取的 xls、xlsx、xlsm、xlsb、odf、ods 和 odt 文件扩展名。支持读取单个工作表或工作表列表的选项。
参数:
iostr、bytes、ExcelFile、xlrd.Book、路径对象或类似文件对象
任何有效的字符串路径都可以接受。字符串可以是 URL。有效的 URL 方案包括 http、ftp、s3 和 file。对于文件 URL,期望有一个主机。本地文件可以是:file://localhost/path/to/table.xlsx
。
如果要传递路径对象,pandas 接受任何os.PathLike
。
通过文件类似对象,我们指的是具有read()
方法的对象,例如文件句柄(例如通过内置的open
函数)或StringIO
。
自版本 2.1.0 起弃用:传递字节字符串已被弃用。要从字节字符串读取,请将其包装在BytesIO
对象中。
sheet_namestr、int、list 或 None,默认为 0
字符串用于工作表名称。整数用于零索引的工作表位置(图表工作表不计入工作表位置)。字符串/整数列表用于请求多个工作表。指定None
以获取所有工作表。
可用情况:
-
默认为
0
:第一个工作表作为 DataFrame -
1
:第二个工作表作为 DataFrame -
"Sheet1"
:加载名为"Sheet1"
的工作表 -
[0, 1, "Sheet5"]
:将第一个、第二个和名为“Sheet5”的工作表加载为 DataFrame 字典 -
None
:所有工作表。
headerint、int 列表,默认为 0
用于解析的 DataFrame 的列标签的行(从 0 开始索引)。如果传递整数列表,则这些行位置将合并为MultiIndex
。如果没有标题,请使用 None。
namesarray-like,默认为 None
使用的列名列表。如果文件不包含标题行,则应显式传递header=None
。
index_colint、str、int 列表,默认为 None
用作 DataFrame 行标签的列(从 0 开始索引)。如果没有这样的列,请传递 None。如果传递了列表,则这些列将合并为MultiIndex
。如果使用usecols
选择了数据子集,则index_col
基于该子集。
缺失值将被向前填充,以允许使用to_excel
进行merged_cells=True
的往返。为了避免向前填充缺失值,请在读取数据后使用set_index
而不是index_col
。
usecolsstr、类似列表或可调用对象,默认为 None
-
如果为 None,则解析所有列。
-
如果是 str,则表示 Excel 列字母和列范围的逗号分隔列表(例如“A:E”或“A,C,E:F”)。范围包括两侧。
-
如果是 int 列表,则表示要解析的列号列表(从 0 开始索引)。
-
如果是字符串列表,则表示要解析的列名列表。
-
如果是可调用对象,则针对每个列名进行评估,并且如果可调用对象返回
True
,则解析该列。
根据上述行为返回列的子集。
dtype类型名称或列->类型字典,默认为 None
数据或列的数据类型。例如,{‘a’:np.float64,‘b’:np.int32}使用object
来保留数据存储在 Excel 中并且不解释 dtype,这将必然导致object
dtype。如果指定了转换器,它们将被应用于 dtype 转换。如果使用None
,它将根据数据推断每列的 dtype。
engine{‘openpyxl’,‘calamine’,‘odf’,‘pyxlsb’,‘xlrd’},默认为 None
如果 io 不是缓冲区或路径,则必须设置此项以识别 io。引擎兼容性:
-
openpyxl
支持更新的 Excel 文件格式。 -
calamine
支持 Excel(.xls,.xlsx,.xlsm,.xlsb)和 OpenDocument(.ods)文件格式。 -
odf
支持 OpenDocument 文件格式(.odf,.ods,.odt)。 -
pyxlsb
支持二进制 Excel 文件。 -
xlrd
支持旧式 Excel 文件(.xls)。
当engine=None
时,将使用以下逻辑确定引擎:
-
如果
path_or_buffer
是 OpenDocument 格式(.odf,.ods,.odt),则将使用odf。 -
否则,如果
path_or_buffer
是 xls 格式,则将使用xlrd
。 -
否则,如果
path_or_buffer
是 xlsb 格式,则将使用pyxlsb
。 -
否则将使用
openpyxl
。
converters字典,默认为 None
用于转换某些列中的值的函数字典。键可以是整数或列标签,值是一个接受一个输入参数(Excel 单元格内容)并返回转换后内容的函数。
true_values列表,默认为 None
被视为 True 的值。
false_values列表,默认为 None
被视为 False 的值。
skiprows列表,整数或可调用对象,可选
要跳过的行号(从 0 开始)或文件开头要跳过的行数(整数)。如果可调用,则将对行索引评估可调用��数,如果应跳过该行则返回 True,否则返回 False。一个有效的可调用参数示例是lambda x: x in [0, 2]
。
nrows整数,默认为 None
要解析的行数。
na_values标量,字符串,类似列表或字典,默认为 None
附加的字符串被识别为 NA/NaN。如果传递了字典,则为每列指定特定的 NA 值。默认情况下,以下值被解释为 NaN:‘’,‘#N/A’,‘#N/A N/A’,‘#NA’,‘-1.#IND’,‘-1.#QNAN’,‘-NaN’,‘-nan’,‘1.#IND’,‘1.#QNAN’,‘’,‘N/A’,‘NA’,‘NULL’,‘NaN’,‘None’,‘n/a’,‘nan’,‘null’。
keep_default_na布尔值,默认为 True
在解析数据时是否包括默认的 NaN 值。根据是否传递了na_values
,行为如下:
-
如果
keep_default_na
为 True,并且指定了na_values
,则na_values
将被附加到用于解析的默认 NaN 值中。 -
如果
keep_default_na
为 True,并且未指定na_values
,则只使用默认的 NaN 值进行解析。 -
如果
keep_default_na
为 False,并且指定了na_values
,则只使用指定的 NaN 值na_values
进行解析。 -
如果
keep_default_na
为 False,并且未指定na_values
,则不会将任何字符串解析为 NaN。
请注意,如果 na_filter 设置为 False,则将忽略keep_default_na
和na_values
参数。
na_filter布尔值,默认为 True
检测缺失值标记(空字符串和 na_values 的值)。在没有任何 NA 的数据中,传递na_filter=False
可以提高读取大文件的性能。
verbose布尔值,默认为 False
指示非数字列中放置的 NA 值的数量。
parse_dates布尔值,类似列表,或字典,默认为 False
行为如下:
-
布尔值
。如果为 True -> 尝试解析索引。 -
整数
或名称的列表。例如,如果[1, 2, 3] -> 尝试将列 1, 2, 3 分别解析为单独的日期列。 -
列表
的列表。例如,如果[[1, 3]] -> 结合列 1 和 3 并解析为单个日期列。 -
字典
,例如{‘foo’ : [1, 3]} -> 解析列 1, 3 为日期并将结果命名为‘foo’
如果列或索引包含无法解析的日期,则整个列或索引将以对象数据类型不变返回。如果不想将某些单元格解析为日期,只需在 Excel 中更改它们的类型为“文本”。对���非标准的日期时间解析,请在pd.read_excel
之后使用pd.to_datetime
。
注意:存在用于 iso8601 格式日期的快速路径。
date_parser函数,可选
用于将一系列字符串列转换为日期时间实例数组的函数。默认使用dateutil.parser.parser
进行转换。Pandas 将尝试以三种不同的方式调用 date_parser,如果发生异常,则会继续下一个:1) 将一个或多个数组(由 parse_dates 定义)作为参数传递;2) 将由 parse_dates 定义的列中的字符串值(按行)连接成单个数组并传递;3) 对每一行使用一个或多个字符串(对应于由 parse_dates 定义的列)作为参数调用 date_parser。
自版本 2.0.0 起弃用:改用date_format
,或者读取为object
,然后根据需要应用to_datetime()
。
date_format字符串或列 -> 格式的字典,默认为None
如果与parse_dates
一起使用,将根据此格式解析日期。对于更复杂的情况,请读取为object
,然后根据需要应用to_datetime()
。
自版本 2.0.0 起新增。
thousands字符串,默认为 None
用于将字符串列解析为数字的千位分隔符。请注意,此参数仅对在 Excel 中存储为 TEXT 的列必要,任何数值列将自动解析,无论显示格式如何。
decimal字符串,默认为‘.’
用于将字符串列解析为数字的十进制点的字符。请注意,此参数仅对在 Excel 中存储为 TEXT 的列必要,任何数值列将自动解析,无论显示格式如何。(例如,对于欧洲数据使用‘,’)。
自版本 1.4.0 起新增。
commentstr, 默认为 None
注释掉行的其余部分。将字符或字符传递给此参数以指示输入文件中的注释。注释字符串和当前行末尾之间的任何数据都将被忽略。
skipfooterint, 默认为 0
要跳过的末尾行(从 0 开始索引)。
storage_optionsdict, 可选
适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发到 urllib.request.Request
。对于其他 URL(例如以“s3://”和“gcs://”开头的 URL),键值对将转发到 fsspec.open
。请参阅 fsspec
和 urllib
以获取更多详细信息,并有关存储选项的更多示例,请参考这里。
dtype_backend{‘numpy_nullable’, ‘pyarrow’}, 默认为 ‘numpy_nullable’
应用于结果 DataFrame
的后端数据类型(仍处于实验阶段)。行为如下:
-
"numpy_nullable"
: 返回由可空数据类型支持的DataFrame
(默认)。 -
"pyarrow"
: 返回由 pyarrow 支持的可空ArrowDtype
DataFrame。
2.0 版本中的新功能。
engine_kwargsdict, 可选
传递给 excel 引擎的任意关键字参数。
返回:
DataFrame 或 DataFrame 字典
从传入的 Excel 文件中获取的 DataFrame。有关返回 DataFrame 字典的更多信息,请参阅 sheet_name 参数中的注释。
另请参见
DataFrame.to_excel
将 DataFrame 写入 Excel 文件。
DataFrame.to_csv
将 DataFrame 写入逗号分隔值(csv)文件。
read_csv
将逗号分隔值(csv)文件读入 DataFrame。
read_fwf
将固定宽度格式的行表读入 DataFrame。
注释
有关每个 Excel 引擎使用的方法的具体信息,请参阅 pandas 用户指南
示例
文件可以使用文件名字符串或打开的文件对象进行读取:
>>> pd.read_excel('tmp.xlsx', index_col=0)
Name Value
0 string1 1
1 string2 2
2 #Comment 3
>>> pd.read_excel(open('tmp.xlsx', 'rb'),
... sheet_name='Sheet3')
Unnamed: 0 Name Value
0 0 string1 1
1 1 string2 2
2 2 #Comment 3
可以通过 index_col 和 header 参数指定索引和标题
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)
0 1 2
0 NaN Name Value
1 0.0 string1 1
2 1.0 string2 2
3 2.0 #Comment 3
列类型会被推断,但也可以明确指定
>>> pd.read_excel('tmp.xlsx', index_col=0,
... dtype={'Name': str, 'Value': float})
Name Value
0 string1 1.0
1 string2 2.0
2 #Comment 3.0
True、False 和 NA 值以及千位分隔符具有默认值,但也可以明确指定。也可以提供您想要的值作为字符串或字符串列表!
>>> pd.read_excel('tmp.xlsx', index_col=0,
... na_values=['string1', 'string2'])
Name Value
0 NaN 1
1 NaN 2
2 #Comment 3
可以使用 comment
kwarg 跳过 Excel 输入文件中的注释行。
>>> pd.read_excel('tmp.xlsx', index_col=0, comment='#')
Name Value
0 string1 1.0
1 string2 2.0
2 None NaN