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使用MONGODB入门实例
May 11 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
django rest framework之请求与响应(详解)
Nov 06 Python
python执行使用shell命令方法分享
Nov 08 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
Python列表与元组的异同详解
Jul 02 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
如何基于python操作excel并获取内容
Dec 24 Python
Python实现分数序列求和
Feb 25 Python
python中操作文件的模块的方法总结
Feb 04 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数组中删除元素的实现代码
2012/06/22 PHP
PHP中echo和print的区别
2014/08/28 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
php设计模式之委托模式
2016/02/13 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python中调试或排错的五种方法示例
2019/09/12 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
大学生简单自荐信
2013/11/10 职场文书
给领导的致歉信范文
2014/01/13 职场文书
青蓝工程实施方案
2014/03/27 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
大学教师个人总结
2015/02/10 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
人工作失职检讨书
2015/05/05 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers