Pandas的read_csv函数参数分析详解


Posted in Python onJuly 02, 2019

函数原型

pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, 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, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=False, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, skip_footer=0, doublequote=True, delim_whitespace=False, as_recarray=False, compact_ints=False, use_unsigned=False, low_memory=True, buffer_lines=None, memory_map=False, float_precision=None)

必填参数

filepath_or_buffer : str,pathlib。str, pathlib.Path,
py._path.local.LocalPath or any object with a read() method 
(such as a file handle or StringIO)

读取文件路径,可以是URL,可用URL类型包括:http, ftp, s3和文件。

常用参数

sep :str, default ‘,'
指定分隔符。如果不指定参数,则会尝试使用逗号分隔。csv文件一般为逗号分隔符。

delimiter : str, default None
定界符,备选分隔符(如果指定该参数,则sep参数失效)

delim_whitespace :boolean, default False.
指定空格(例如' ‘或者' ‘)是否作为分隔符使用,等效于设定sep='\s+'。
如果这个参数设定为Ture那么delimiter 参数失效。

header :int or list of ints, default ‘infer'
指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,否则设置为None。对于数据读取有表头和没表头的情况很实用

header :int or list of ints, default ‘infer'
指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,否则设置为None。

names :  array-like, default None
用于结果的列名列表,对各列重命名,即添加表头。
如数据有表头,但想用新的表头,可以设置header=0,names=['a','b']实现表头定制。

index_col : int or sequence or False, default None
用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
可使用index_col=[0,1]来指定文件中的第1和2列为索引列。

usecols : array-like, default None
返回一个数据子集,即选取某几列,不读取整个文件的内容,有助于加快速度和降低内存。
usecols=[1,2]或usercols=['a','b']

squeeze : boolean, default False
如果文件只包含一列,则返回一个Series

prefix :  str, default None
在没有列标题时,给列添加前缀。例如:添加‘X' 成为 X0, X1, ...

mangle_dupe_cols : boolean, default True
重复的列,将‘X'...'X'表示为‘X.0'...'X.N'。如果设定为False则会将所有重名列覆盖。

不太常用参数

dtype : Type name or dict of column -> type, default None
每列数据的数据类型。例如 {‘a': np.float64, ‘b': np.int32}

engine :  {‘c', ‘python'}, optional
使用的分析引擎。可以选择C或者是python。C引擎快但是Python引擎功能更加完备。

converters : dict, default None
列转换函数的字典。key可以是列名或者列的序号。

true_values和false_values :  list, default None
Values to consider as True or False

skipinitialspace :boolean, default False
忽略分隔符后的空白(默认为False,即不忽略)

skiprows : list-like or integer, default None
需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。

skipfooter : int, default 0
从文件尾部开始忽略。 (c引擎不支持)

nrows : int, default None
需要读取的行数(从文件头开始算起)。

na_values : scalar, str, list-like, or dict, default None
一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。
默认为‘1.#IND', ‘1.#QNAN', ‘N/A', ‘NA', ‘NULL', ‘NaN', ‘nan'`.

keep_default_na :  bool, default True
如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加。

na_filter : boolean, default True
是否检查丢失值(空字符串或者是空值)。
对于大文件来说数据集中没有空值,设定na_filter=False可以提升读取速度。

verbose :boolean, default False
是否打印各种解析器的输出信息,例如:“非数值列中缺失值的数量”等。

skip_blank_lines :boolean, default True
如果为True,则跳过空行;否则记为NaN。

encoding : str, default None
指定字符集类型,通常指定为'utf-8'. List of Python standard encodings

dialect : str or csv.Dialect instance, default None
如果没有指定特定的语言,如果sep大于一个字符则忽略。具体查看csv.Dialect 文档

tupleize_cols : boolean, default False
Leave a list of tuples on columns as is (default is to convert to a Multi Index on the columns)

error_bad_lines : boolean, default True
如果一行包含太多的列,那么默认不会返回DataFrame ,如果设置成false,那么会将改行剔除(只能在C解析器下使用)。

warn_bad_lines : boolean, default True
如果error_bad_lines =False,并且warn_bad_lines =True 那么所有的“bad lines”将会被输出(只能在C解析器下使用)。

low_memory : boolean, default True
分块加载到内存,在低内存消耗中解析。但是可能出现类型混淆。
确保类型不被混淆需要设置为False。或者使用dtype 参数指定类型。
注意使用chunksize 或者iterator 参数分块读入会将整个文件读入到一个Dataframe,
而忽略类型(只能在C解析器中有效)

日期类型相关参数

parse_dates : boolean or list of ints or names or list of lists or dict, default False

boolean. True -> 解析索引
list of ints or names. e.g. If [1, 2, 3] -> 解析1,2,3列的值作为独立的日期列;
list of lists. e.g. If [[1, 3]] -> 合并1,3列作为一个日期列使用
dict, e.g. {‘foo' : [1, 3]} -> 将1,3列合并,并给合并后的列起名为"foo"

示例:df=pd.read_csv(file_path,parse_dates=['time1','time2']),
把time1和time2两列解析为日期格式。
这里不得不说,很遗憾中文不行,比如‘4月5日'这种格式就不能解析。

 infer_datetime_format :boolean, default False
如果设定为True并且parse_dates 可用,那么pandas将尝试转换为日期类型,如果可以转换,转换方法并解析。
在某些情况下会快5~10倍。

keep_date_col : boolean, default False
如果连接多列解析日期,则保持参与连接的列。默认为False。

date_parser :  function, default None
于解析日期的函数,默认使用dateutil.parser.parser来做转换。
Pandas尝试使用三种不同的方式解析,如果遇到问题则使用下一种方式。
1.使用一个或者多个arrays(由parse_dates指定)作为参数;
2.连接指定多列字符串作为一个列作为参数;
3.每行调用一次date_parser函数来解析一个或者多个字符串(由parse_dates指定)作为参数。

dayfirst : boolean, default False
DD/MM格式的日期类型

大文件常用参数

iterator : boolean, default False
返回一个TextFileReader 对象,以便逐块处理文件。

chunksize : int, default None
文件块的大小, See IO Tools docs for more informationon iterator and chunksize.

chunksize : int, default None
文件块的大小, See IO Tools docs for more informationon iterator and chunksize.

chunksize : int, default None
文件块的大小, See IO Tools docs for more informationon iterator and chunksize.

decimal : str, default ‘.'
字符中的小数点 (例如:欧洲数据使用',‘).

float_precision : string, default None
Specifies which converter the C engine should use for floating-point values.
The options are None for the ordinary converter, high for the high-precision converter,
and round_trip for the round-trip converter.

lineterminator : str (length 1), default None
行分割符,只在C解析器下使用。

quotechar : str (length 1), optional
引号,用作标识开始和解释的字符,引号内的分割符将被忽略。

quoting : int or csv.QUOTE_* instance, default 0
控制csv中的引号常量。
可选 QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) or QUOTE_NONE (3)

doublequote : boolean, default True
双引号,当单引号已经被定义,并且quoting 参数不是QUOTE_NONE的时候,
使用双引号表示引号内的元素作为一个元素使用。

escapechar : str (length 1), default None
当quoting 为QUOTE_NONE时,指定一个字符使的不受分隔符限值。

comment : str, default None
标识着多余的行不被解析。如果该字符出现在行首,这一行将被全部忽略。
这个参数只能是一个字符,空行(就像skip_blank_lines=True)注释行被header和skiprows忽略一样。
例如如果指定comment='#' 解析‘#empty\na,b,c\n1,2,3' 以header=0 那么返回结果将是以'a,b,c'作为header。

读取多个文件

#读取多个文件
import pandas
import glob
for r in glob.glob("test*.csv"):
    csv=pandas.read_csv(r)
    csv.to_csv("test.txt",mode="a+")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一篇不错的Python入门教程
Feb 08 Python
使用PYTHON创建XML文档
Mar 01 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 Python
python 除法保留两位小数点的方法
Jul 16 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
如何基于Python实现数字类型转换
Feb 07 Python
Python requests模块安装及使用教程图解
Jun 30 Python
Python Map 函数的使用
Aug 28 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
如何使用Python实现斐波那契数列
Jul 02 #Python
pandas数据筛选和csv操作的实现方法
Jul 02 #Python
Python列表与元组的异同详解
Jul 02 #Python
Pandas中resample方法详解
Jul 02 #Python
Python何时应该使用Lambda函数
Jul 02 #Python
Python Pandas分组聚合的实现方法
Jul 02 #Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 #Python
You might like
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
python使用socket连接远程服务器的方法
2015/04/29 Python
Python修改MP3文件的方法
2015/06/15 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python 3中的yield from语法详解
2017/01/18 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
学校课外活动总结
2014/05/08 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
Nginx缓存设置案例详解
2021/09/15 Servers
我去timi了,一起去timi是什么意思?
2022/04/13 杂记