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,可选,默认 NoneInt、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] 。从以下位置实例化DataFrame data 保留元素顺序的使用 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’}使用 strobject 与合适的 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_nana_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 有关以下内容的更多信息 iteratorchunksize

在 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 to zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, or zstandard.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 版更改: 什么时候 encodingNoneerrors="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,可选

如果提供,此参数将覆盖以下参数的值(默认或非默认): delimiterdoublequoteescapecharskipinitialspacequotechar ,以及 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中,请使用 chunksizeiterator 参数以块为单位返回数据。(仅对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 。请看 fsspecurllib 有关更多详细信息和有关存储选项的更多示例,请参阅 here

1.2 新版功能.

退货
DataFrame或TextParser

逗号分隔值(CSV)文件作为带有标签轴的二维数据结构返回。

参见

DataFrame.to_csv

将DataFrame写入逗号分隔值(CSV)文件。

read_csv

将逗号分隔值(CSV)文件读入DataFrame。

read_fwf

将固定宽度的格式化行表读入DataFrame。

示例

>>> pd.read_table('data.csv')