【pandas】pandas的文件读取方法 read_csv

pandas.read_csv(filepath_or_buffersep=''delimiter=Noneheader='infer'names=Noneindex_col=Noneusecols=Nonesqueeze=Falseprefix=Nonemangle_dupe_cols=Truedtype=Noneengine=Noneconverters=Nonetrue_values=Nonefalse_values=Noneskipinitialspace=Falseskiprows=Noneskipfooter=0nrows=Nonena_values=Nonekeep_default_na=Truena_filter=Trueverbose=Falseskip_blank_lines=Trueparse_dates=Falseinfer_datetime_format=Falsekeep_date_col=Falsedate_parser=Nonedayfirst=Falseiterator=Falsechunksize=Nonecompression='infer'thousands=Nonedecimal=b'.'lineterminator=Nonequotechar='"'quoting=0doublequote=Trueescapechar=Nonecomment=Noneencoding=Nonedialect=Nonetupleize_cols=Noneerror_bad_lines=Truewarn_bad_lines=Truedelim_whitespace=Falselow_memory=Truememory_map=Falsefloat_precision=None)

 

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

还支持可选地将文件迭代或分解为块。

可以在IO Tools的在线文档中找到其他帮助 。

参数:

filepath_or_buffer : str,path对象或类文件对象

任何有效的字符串路径都是可接 字符串可以是URL。有效的URL方案包括http,ftp,s3和file。对于文件URL,需要主机。本地文件可以是:file://localhost/path/to/table.csv

如果要传入路径对象,pandas接受 pathlib.Path或者py._path.local.LocalPath

通过类似文件的对象,我们使用read()方法引用对象,例如文件处理程序(例如,通过内置open函数)或StringIO

 

sep : str,默认','

分隔符使用。如果sep为None,则C引擎无法自动检测分隔符,但Python解析引擎可以,这意味着后者将被使用并通过Python的内置嗅探器工具自动检测分隔符csv.Sniffer。此外,长度超过1个字符且不同的分隔符'\s+'将被解释为正则表达式,并且还将强制使用Python解析引擎。请注意,正则表达式分隔符很容易忽略引用的数据。正则表达式的例子:'\r\t'

 

delimiter : str,默认None

别名为sep。

 

header : int,int列表,默认'推断'

用作列名的行号和数据的开头。默认行为是推断列名:如果没有传递名称,则行为相同,header=0并且从文件的第一行推断列名,如果显式传递列名,则行为与之相同 header=None。明确传递header=0以能够替换现有名称。标头可以是整数列表,其指定列上的多索引的行位置,例如[0,1,3]。将跳过未指定的干预行(例如,跳过此示例中的2)。请注意,此参数忽略注释行和空行if skip_blank_lines=True,因此header=0表示第一行数据而不是文件的第一行。

 

names  : 类似数组,可选

要使用的列名列表。如果文件不包含标题行,则应明确传递header=None。此列表中的重复项将导致UserWarning发布。

 

index_col : int,sequence或bool,可选

用作DataFrame的行标签的列。如果给出序列,则使用MultiIndex。如果在每行末尾有一个带有分隔符的格式错误的文件,您可能会考虑index_col=False强制pandas不使用第一列作为索引(行名称)。

 

usecols : list-like或callable,optional

返回列的子集。如果类似列表,则所有元素必须是位置(即文档列中的整数索引)或与用户名称或从文档标题行推断的列名对应的字符串。例如,一个有效的类似列表的 usecols参数将是或。元素顺序被忽略,因此也是如此。要从保留元素顺序实例化DataFrame,请按顺序使用列或 按顺序使用 列。[0, 1, 2]['foo', 'bar', 'baz']usecols=[0, 1][1,0]datapd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']]['foo', 'bar']pd.read_csv(data,usecols=['foo', 'bar'])[['bar', 'foo']]['bar', 'foo']

如果是可调用的,则将根据列名评估可调用函数,返回可调用函数求值为True的名称。一个有效的可调用参数的例子是。使用此参数可以大大加快解析时间并降低内存使用率。lambdax: x.upper() in ['AAA', 'BBB', 'DDD']

 

squeeze  : bool,默认为False

如果解析的数据只包含一列,则返回一个Series。

 

prefix : str,可选

没有标题时添加到列号的前缀,例如X0,X1,......的'X'

 

mangle_dupe_cols : bool,默认为True

重复的列将被指定为'X','X.1',...'X.N',而不是'X'...'X'。如果列中存在重复的名称,则传入False将导致数据被覆盖。

 

dtype : 列的名称或字典 - > type,optional

数据或列的数据类型。例如{'a':np.float64,'b':np.int32,'c':'Int64'}将str或object与合适的na_values设置一起使用以保留和不解释dtype。如果指定了转换器,则它们将应用于dtype转换的INSTEAD。

engine : {'c','python'},可选

使用解析器引擎。C引擎速度更快,而python引擎目前功能更加完善。

 

converters  : dict,可选

用于转换某些列中的值的函数的字典。键可以是整数或列标签。

 

true_values : list,optional

要视为True的值。

 

false_values : list,可选

要考虑为False的值。

 

skipinitialspace : bool,默认为False

分隔符后跳过空格。

 

skiprows : list-like,int或callable,optional

要在文件开头跳过(0索引)或要跳过的行数(int)的行号。

如果是可调用的,则将根据行索引计算可调用函数,如果应该跳过该行则返回True,否则返回False。一个有效的可调用参数的例子是。lambda x: x in [0, 2]

 

skipfooter : int,默认值为0

要跳过的文件底部的行数(不支持engine ='c')。

 

nrows : int,可选

要读取的文件行数。用于读取大文件。

 

na_values : 标量,str,list-like或dict,可选

要识别为NA / NaN的其他字符串。如果dict通过,则具体的每列NA值。默认情况下,以下值被解释为NaN:'','#N / A','#N / AN / A','#N',' - 1。#IND',' - 。#QNAN', '-NaN',' - nan','1。#IND','1。#QNAN','N / A','NA','NULL','NaN','n / a','nan ', '空值'。

 

keep_default_na : bool,默认为True

解析数据时是否包含默认NaN值。根据是否传入na_values,行为如下:

  • 如果keep_default_na为True,并且na_values指定,na_values 附加到默认用于解析NaN值。
  • 如果keep_default_na为True,并且未指定na_values,则仅使用默认NaN值进行解析。
  • 如果keep_default_na是假,和na_values指定,只有指定的NaN值na_values用于解析。
  • 如果keep_default_na为False,并且未指定na_values,则不会将任何字符串解析为NaN。

请注意,如果将na_filter作为False 传入,则将忽略keep_default_na和 na_values参数。

 

na_filter : bool,默认为True

检测缺失值标记(空字符串和na_values的值)。在没有任何NA的数据中,传递na_filter = False可以提高读取大文件的性能。

 

verbose  : bool,默认为False

指示放置在非数字列中的NA值的数量。

 

skip_blank_lines : bool,默认为True

如果为True,则跳过空行而不是解释为NaN值。

 

parse_dates : bool或int或名称列表或列表或dict列表,默认为False

行为如下:

  • 布尔值。如果为True - >尝试解析索引。
  • int或名称列表。例如,如果[1,2,3] - >尝试将每个列1,2,3解析为一个单独的日期列。
  • 列表清单。例如,如果[[1,3]] - >将第1列和第3列组合在一起并解析为单个日期列。
  • dict,例如{'foo':[1,3]} - >将第1,3列解析为日期并调用结果'foo'

如果列或索引不能表示为日期时间数组,例如由于不可解析的值或时区的混合,则列或索引将作为对象数据类型不加改变地返回。对于非标准日期时间解析,请pd.to_datetime在之后 使用。为了解析与时区的混合物的索引或列中,指定是一个部分应用 与。有关详细信息,请参阅 使用混合时区解析CSVpd.read_csvdate_parserpandas.to_datetime()utc=True

注意:iso8601格式的日期存在快速路径。

 

infer_datetime_format : bool,默认为False

如果启用了True和parse_dates,pandas将尝试推断列中日期时间字符串的格式,如果可以推断,请切换到更快的解析方法。在某些情况下,这可以将解析速度提高5-10倍。

 

keep_date_col : bool,默认为False

如果True和parse_dates指定组合多个列,则保留原始列。

 

date_parser : function,optional

用于将字符串列序列转换为日期时间实例数组的函数。默认用于dateutil.parser.parser执行转换。Pandas将尝试以三种不同的方式调用date_parser,如果发生异常则前进到下一个:1)将一个或多个数组(由parse_dates定义)作为参数传递 ; 2)将parse_dates定义的列中的字符串值连接(逐行)到一个数组中并传递; 3)使用一个或多个字符串(对应于parse_dates定义的列)作为参数,为每一行调用date_parser一次。

 

dayfirst : bool,默认为False

DD / MM格式日期,国际和欧洲格式。

 

iterator : bool,默认为False

返回TextFileReader对象以进行迭代或获取块 get_chunk()

 

chunksize : int,可选

返回TextFileReader对象以进行迭代。有关和的 更多信息,请参阅IO Tools文档iteratorchunksize

 

compression  : {'推断','gzip','bz2','zip','xz',无},默认'推断'

用于磁盘上数据的即时解压缩。如果'推断'和 filepath_or_buffer是类似路径的,则从以下扩展中检测压缩:'。gz','。bz2','。zip'或'.xz'(否则无解压缩)。如果使用'zip',则ZIP文件必须只包含一个要读入的数据文件。设置为None表示不进行解压缩。

版本0.18.1中的新功能:支持'zip'和'xz'压缩。

 

thousands : str,可选

千分离器。

 

decimal : str,默认'。'

要识别为小数点的字符(例如,对欧洲数据使用​​',')。

 

lineterminator : str(长度为1),可选

将文件分成行的字符。仅对C解析器有效。

 

quotechar : str(长度为1),可选

用于表示引用项目的开头和结尾的字符。引用的项目可以包括分隔符,它将被忽略。

 

quoting  : int或csv.QUOTE_ *实例,默认为0

每个csv.QUOTE_*常量的控制字段引用行为。使用QUOTE_MINIMAL(0),QUOTE_ALL(1),QUOTE_NONNUMERIC(2)或QUOTE_NONE(3)之一。

 

doublequote : bool,默认True

如果指定了quotechar且未引用QUOTE_NONE,则指示是否将字段中的两个连续的quotechar元素解释为单个quotechar元素。

 

escapechar : str(长度为1),可选

用于转义其他字符的单字符字符串。

 

comment : str,可选

表示不应解析行的剩余部分。如果在行的开头找到,则该行将被完全忽略。此参数必须是单个字符。与空行(只要skip_blank_lines=True)一样,参数标题会忽略完全注释的行,但不会被 跳过。例如,如果comment='#',解析 #empty\na,b,c\n1,2,3header=0将导致“A,B,C”被视为标题。

 

encoding : str,可选

编码以在读/写时使用UTF(例如'utf-8')。Python标准编码列表

 

dialect : str或csv.Dialect,可选

如果提供的话,该参数将覆盖为以下参数的值(默认或不):分隔符,双引号,escapechar, skipinitialspace,quotechar,和引用。如果需要覆盖值,则会发出ParserWarning。有关更多详细信息,请参阅csv.Dialect文档。

 

tupleize_cols : bool,默认为False

按原样在列上保留元组列表(默认是在列上转换为MultiIndex)。

自版本0.21.0后不推荐使用:此参数将被删除,并始终转换为MultiIndex

 

error_bad_lines : bool,默认为True

具有太多字段的行(例如,带有太多逗号的csv行)将默认导致引发异常,并且不会返回任何DataFrame。如果为False,那么这些“坏行”将从返回的DataFrame中删除。

 

warn_bad_lines : bool,默认为True

如果error_bad_lines为False,并且warn_bad_lines为True,则将输出每个“坏行”的警告。

 

delim_whitespace : bool,默认为False

指定是否将空格(例如' ''    ')用作sep。相当于设定sep='\s+'。如果此选项设置为True,则不应为delimiter参数传递任何内容。

版本0.18.1中的新增功能:支持Python解析器。

 

low_memory : bool,默认为True

以块的形式内部处理文件,导致在解析时使用较少的内存,但可能是混合类型推断。要确保没有混合类型,请设置False,或使用dtype参数指定类型。请注意,整个文件都被读入单个DataFrame中,使用chunksize或iterator参数以块的形式返回数据。(仅对C解析器有效)。

 

memory_map : bool,默认为False

如果为filepath_or_buffer提供了文件路径,则将文件对象直接映射到内存并直接从那里访问数据。使用此选项可以提高性能,因为不再有任何I / O开销。

 

float_precision : str,可选

指定C引擎应该将哪个转换器用于浮点值。选项有没有对于普通转换器, 高的高精度转换器,以及round_trip用于往返转换器。

返回:

DataFrame或TextParser

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

 

 

原文:http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html?highlight=read_csv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值