pandas.read_table#
- pandas.read_table(filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, 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=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=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, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None)[源代码]#
将通用分隔文件读入DataFrame。
还支持可选地迭代或将文件拆分成块。
有关更多帮助,请参阅的在线文档 IO Tools 。
- 参数
- filepath_or_buffer字符串、路径对象或类文件对象
任何有效的字符串路径都可以接受。该字符串可以是URL。有效的URL方案包括http、ftp、s3、gs和文件。对于文件URL,需要主机。本地文件可以是:file://localhost/path/to/table.csv.
如果要传入Path对象,则Pandas接受任何
os.PathLike
。对于类似文件的对象,我们使用
read()
方法,如文件句柄(例如,通过内置open
函数)或StringIO
。- sep :str,默认‘\t’(制表位)字符串,默认‘\t’(制表位)
要使用的分隔符。如果sep为NONE,则C引擎不能自动检测分隔符,但Python解析引擎可以,这意味着将使用后者,并通过Python的内置嗅探工具自动检测分隔符。
csv.Sniffer
。此外,长度超过1个字符且不同于的分隔符'\s+'
将被解释为正则表达式,并且还将强制使用Python解析引擎。请注意,正则表达式分隔符很容易忽略引用的数据。正则表达式示例:'\r\t'
。- 分隔符 :字符串,默认
None
字符串,默认 9月的别名。
- headerInt,int列表,无,默认‘推断’
用作列名和数据开始的行号。默认行为是推断列名:如果没有传递任何名称,则行为与
header=0
和列名是从文件的第一行推断出来的,如果列名是显式传递的,则行为与header=None
。显式传递header=0
能够替换现有名称。标题可以是为列上的多索引指定行位置的整数列表。 [0、1、3] 。未指定的中间行将被跳过(例如,本例中的2被跳过)。请注意,如果出现以下情况,此参数将忽略注释行和空行skip_blank_lines=True
,所以header=0
表示数据的第一行,而不是文件的第一行。- names类似阵列,可选
要使用的列名列表。如果文件包含标题行,则应显式传递
header=0
要覆盖列名,请执行以下操作。不允许此列表中存在重复项。- index_col :int,str,int/str序列,或FALSE,可选,默认
None
Int、str、int/str序列或False、可选、默认 要用作
DataFrame
以字符串名或列索引的形式给出。如果给定一个int/str序列,则使用多重索引。注:
index_col=False
可以用来迫使大Pandas not 使用第一列作为索引,例如,当您有一个格式错误的文件时,每行末尾都有分隔符。- usecols列表式或可调用,可选
返回列的子集。如果是类似列表的元素,则所有元素必须是按位置排列的(即文档列的整数索引),或者是与用户在 names 或从文档标题行中推断。如果
names
,则不考虑文档标题行。例如,一个有效的类似列表的 usecols 参数将为[0, 1, 2]
或['foo', 'bar', 'baz']
。元素顺序被忽略,因此usecols=[0, 1]
是否与[1, 0]
。从以下位置实例化DataFramedata
保留元素顺序的使用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']
。使用此参数可以大大缩短解析时间并降低内存使用量。- squeeze布尔值,默认为False
如果解析的数据只包含一列,则返回一个Series。
1.4.0 版后已移除: 附加
.squeeze("columns")
呼叫到read_table
来压缩数据。- prefix字符串,可选
没有标题时添加到列号的前缀,例如‘X’表示X0、X1、...
1.4.0 版后已移除: 调用后对DataFrame的列使用列表理解
read_csv
。- mangle_dupe_cols布尔值,默认为True
重复的列将指定为‘X’、‘X.1’、...‘X.N’,而不是‘X’...‘X’。如果列中有重复的名称,则传入False将导致数据被覆盖。
- dtype列的类型名称或字典->类型,可选
数据或列的数据类型。例如,{‘a’:np.flat64,‘b’:np.int32,‘c’:‘Int64’}使用 str 或 object 与合适的 na_values 保留而不解释数据类型的设置。如果指定了转换器,则将应用它们而不是数据类型转换。
1.5.0 新版功能: 添加了对默认判决的支持。指定一个defaultdict作为输入,其中缺省值确定未显式列出的列的数据类型。
- engine{‘c’,‘python’,‘pyrow’},可选
要使用的解析器引擎。C和yarrow引擎速度更快,而目前的python引擎功能更齐全。多线程目前仅受pyrow引擎支持。
1.4.0 新版功能: “箭箭”引擎被添加为 实验性的 引擎,并且此引擎不支持某些功能,或者这些功能可能无法正常工作。
- convertersDICT,可选
用于转换某些列中的值的函数的字典。键可以是整数,也可以是列标签。
- true_values列表,可选
要视为True的值。
- false_values列表,可选
要视为False的值。
- skipinitialspace布尔值,默认为False
跳过分隔符后面的空格。
- skiprows类似列表、整型或可调用、可选
文件开始处要跳过的行数(0-索引)或要跳过的行数(Int)。
如果可调用,则将根据行索引计算可调用函数,如果应该跳过该行,则返回True,否则返回False。有效的可调用参数的示例如下
lambda x: x in [0, 2]
。- skipfooter整型,默认为0
文件底部要跳过的行数(引擎=‘c’不支持)。
- nrows整型,可选
要读取的文件行数。对于读取大文件片段非常有用。
- na_values标量、字符串、类似列表或DICT,可选
要识别为NA/NaN的其他字符串。如果DCT通过,则为特定的每列NA值。默认情况下,下列值被解释为NaN:‘’、‘#N/A’、‘#N/A N/A’、‘#NA’、‘-1.#IND’、‘-1.#QNAN’、‘-NaN’、‘-NaN’、‘1.#IND’、‘1.#QNAN’、‘<NA>’、‘N/A’、‘NA’、‘NULL’、‘NaN’、‘n/a’、‘NaN’、‘NULL’。
- keep_default_na布尔值,默认为True
在解析数据时是否包括默认的NaN值。取决于是否 na_values 传入时,行为如下:
如果 keep_default_na 为真,并且 na_values 是指定的, na_values 被附加到用于解析的默认NaN值。
如果 keep_default_na 为真,并且 na_values 未指定,则只使用默认的NaN值进行解析。
如果 keep_default_na 为假,并且 na_values ,则仅指定NaN值。 na_values 用于解析。
如果 keep_default_na 为假,并且 na_values 未指定,则不会将任何字符串解析为NaN。
请注意,如果 na_filter 作为FALSE传递,则 keep_default_na 和 na_values 参数将被忽略。
- na_filter布尔值,默认为True
检测缺少的值标记(空字符串和NA_VALUES的值)。在没有任何NAS的数据中,传递NA_FILTER=FALSE可以提高读取大文件的性能。
- verbose布尔值,默认为False
表示放置在非数字列中的NA值的数量。
- skip_blank_lines布尔值,默认为True
如果为True,则跳过空行,而不是解释为NaN值。
- parse_dates整数或名称的布尔或列表,或列表或词典的列表,默认为FALSE
其行为如下:
布尔型。如果为True->尝试解析索引。
整型或名称的列表。例如,如果 [1、2、3] ->尝试将第1、2、3列分别解析为单独的日期列。
列表列表。例如,如果 [[1,3] ]->组合第1列和第3列,并解析为单个日期列。
词典,例如{‘foo’: [1, 3] }->将第1、3列解析为日期并调用结果‘foo’
如果列或索引不能表示为日期时间数组,例如由于无法解析的值或时区的混合,则该列或索引将原封不动地作为对象数据类型返回。对于非标准日期时间解析,请使用
pd.to_datetime
之后pd.read_csv
。要分析混合有多个时区的索引或列,请指定date_parser
成为一名部分应用的pandas.to_datetime()
使用utc=True
。看见 解析具有混合时区的CSV 想要更多。注意:对于ISO 8601格式的日期,有一条快速路径。
- infer_datetime_format布尔值,默认为False
如果为True且 parse_dates 启用时,Pandas将尝试推断列中日期时间字符串的格式,如果可以推断,则切换到分析它们的更快方法。在某些情况下,这可以将解析速度提高5-10倍。
- keep_date_col布尔值,默认为False
如果为True且 parse_dates 指定合并多个列,然后保留原始列。
- date_parser函数,可选
用于将字符串列序列转换为DateTime实例数组的函数。默认情况下使用
dateutil.parser.parser
来进行转换。Pandas会试着呼唤 date_parser 如果发生异常,则以三种不同的方式前进到下一个:1)传递一个或多个数组(由 parse_dates )作为参数;2)连接(按行)由定义的列的字符串值 parse_dates 放入单个数组并传递该函数;以及3)调用 date_parser 使用一个或多个字符串(对应于由 parse_dates )作为参数。- dayfirst布尔值,默认为False
DD/MM格式日期、国际格式和欧洲格式。
- cache_dates布尔值,默认为True
如果为True,则使用唯一的转换日期缓存来应用DateTime转换。在分析重复的日期字符串时,尤其是具有时区偏移量的字符串时,可能会显著提高速度。
0.25.0 新版功能.
- iterator布尔值,默认为False
返回用于迭代或获取块的TextFileReader对象
get_chunk()
。在 1.2 版更改:
TextFileReader
是一名上下文管理器。- chunksize整型,可选
返回迭代的TextFileReader对象。请参阅 IO Tools docs 有关以下内容的更多信息
iterator
和chunksize
。在 1.2 版更改:
TextFileReader
是一名上下文管理器。- compression字符串或词典,默认为‘INFER’
For on-the-fly decompression of on-disk data. If 'infer' and '%s' is path-like, then detect compression from the following extensions: '.gz', '.bz2', '.zip', '.xz', or '.zst' (otherwise no compression). If using 'zip', the ZIP file must contain only one data file to be read in. Set to
None
for no decompression. Can also be a dict with key'method'
set to one of {'zip'
,'gzip'
,'bz2'
,'zstd'
} and other key-value pairs are forwarded tozipfile.ZipFile
,gzip.GzipFile
,bz2.BZ2File
, orzstandard.ZstdDecompressor
, respectively. As an example, the following could be passed for Zstandard decompression using a custom compression dictionary:compression={'method': 'zstd', 'dict_data': my_compression_dict}
.在 1.4.0 版更改: Z标准支持。
- thousands字符串,可选
上千个分隔符。
- decimal字符串,默认为‘.’
要识别为小数点的字符(例如,使用‘,’表示欧洲数据)。
- lineterminator字符串(长度1),可选
用于将文件拆分为行的字符。仅对C解析器有效。
- quotechar字符串(长度1),可选
用于表示引用项的开始和结束的字符。引用的项目可以包括分隔符,它将被忽略。
- quotingInt或csv.QUOTE_*实例,默认为0
控制每个字段的报价行为
csv.QUOTE_*
常量。使用QUOTE_MINIMAL(0)、QUOTE_ALL(1)、QUOTE_NONNUMERIC(2)或QUOTE_NONE(3)之一。- 双等分 :bool,默认
True
布尔,默认 当指定了报价而未指定报价时
QUOTE_NONE
,指示是否将一个字段内的两个连续的报价计算元素解释为单个quotechar
元素。- escapechar字符串(长度1),可选
用于转义其他字符的单字符字符串。
- comment字符串,可选
指示不应分析行的其余部分。如果在一行的开头找到该行,则该行将被完全忽略。此参数必须是单个字符。像空行一样(只要
skip_blank_lines=True
),则参数将忽略完全注释的行 header 但不是通过 skiprows 。例如,如果comment='#'
,解析#empty\na,b,c\n1,2,3
使用header=0
将导致‘a,b,c’被视为标头。- encoding字符串,可选
读/写时用于UTF的编码(例如‘utf-8’)。 List of Python standard encodings 。
在 1.2 版更改: 什么时候
encoding
是None
,errors="replace"
传递给open()
。否则,errors="strict"
传递给open()
。这种行为以前只在engine="python"
。在 1.3.0 版更改:
encoding_errors
是一个新的论点。encoding
对如何处理编码错误不再有影响。- encoding_errors字符串,可选,默认为“Strong”
如何处理编码错误。 List of possible values 。
1.3.0 新版功能.
- dialect字符串或csv.Dialect,可选
如果提供,此参数将覆盖以下参数的值(默认或非默认): delimiter , doublequote , escapechar , skipinitialspace , quotechar ,以及 quoting 。如果需要重写值,将发出ParserWarning。有关更多详细信息,请参阅csv.Dialect文档。
- error_bad_lines :bool,可选,默认
None
布尔值,可选,默认 默认情况下,包含太多字段的行(例如,带有太多逗号的CSV行)将导致引发异常,并且不会返回DataFrame。如果为False,则这些“坏行”将从返回的DataFrame中删除。
1.3.0 版后已移除: 这个
on_bad_lines
参数来指定遇到坏行时的行为。- warn_bad_lines :bool,可选,默认
None
布尔值,可选,默认 如果ERROR_BAD_LINES为FALSE,且WARN_BAD_LINES为True,则将为每个“坏行”输出警告。
1.3.0 版后已移除: 这个
on_bad_lines
参数来指定遇到坏行时的行为。- on_bad_lines{‘Error’,‘Warn’,‘Skip’}或可调用,默认为‘Error’
指定遇到坏行(具有太多字段的行)时应执行的操作。允许的值包括:
“Error”,则在遇到错误行时引发异常。
‘warn’,当遇到坏行时发出警告并跳过该行。
“跳过”,跳过错误的行,在遇到错误行时不进行提示或警告。
1.3.0 新版功能:
可调用,带签名的函数
(bad_line: list[str]) -> list[str] | None
这将处理一条错误的行。bad_line
是拆分为sep
。如果函数返回None
,错误行将被忽略。如果该函数返回一个新的字符串列表,其中的元素比预期的要多,则会引发ParserWarning
将在删除额外元素时发出。仅在以下情况下支持engine="python"
1.4.0 新版功能.
- delim_whitespace布尔值,默认为False
指定是否使用空白(例如
' '
或' '
)将被用作9月。相当于设置sep='\s+'
。如果此选项设置为True,则不应为delimiter
参数。- low_memory布尔值,默认为True
在内部以块的形式处理文件,导致在解析时使用较低的内存,但可能会出现混合类型推断。为确保没有混合类型,请设置为FALSE,或使用 dtype 参数。请注意,无论如何,整个文件都被读入到单个DataFrame中,请使用 chunksize 或 iterator 参数以块为单位返回数据。(仅对C解析器有效)。
- memory_map布尔值,默认为False
如果为以下对象提供文件路径 filepath_or_buffer ,将文件对象直接映射到内存,并从那里直接访问数据。使用此选项可以提高性能,因为不再有任何I/O开销。
- float_precision字符串,可选
指定C引擎应对浮点值使用哪个转换器。这些选项包括
None
对于普通转换器来说是‘HIGH’,对于原始的较低精度的PANAS转换器来说是‘Legacy’,对于往返转换器来说是‘ROUND_TRIP’。在 1.2 版更改.
- storage_optionsDICT,可选
对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S)URL,键-值对被转发到
urllib.request.Request
作为标题选项。对于其他URL(例如,以“s3://”和“gcs://”开头),键-值对被转发到fsspec.open
。请看fsspec
和urllib
有关更多详细信息和有关存储选项的更多示例,请参阅 here 。1.2 新版功能.
- 退货
- DataFrame或TextParser
逗号分隔值(CSV)文件作为带有标签轴的二维数据结构返回。
参见
DataFrame.to_csv
将DataFrame写入逗号分隔值(CSV)文件。
read_csv
将逗号分隔值(CSV)文件读入DataFrame。
read_fwf
将固定宽度的格式化行表读入DataFrame。
示例
>>> pd.read_table('data.csv')