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 相关文章推荐
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
tensorflow实现简单的卷积神经网络
May 24 Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 Python
python实现图片识别汽车功能
Nov 30 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
postman传递当前时间戳实例详解
Sep 14 Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
Django自带用户认证系统使用方法解析
Nov 12 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
php 调用远程url的六种方法小结
2009/11/02 PHP
php foreach 参数强制类型转换的问题
2010/12/10 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
JavaScript事件列表解说
2006/12/22 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
Python实现备份文件实例
2014/09/16 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
Python应用库大全总结
2018/05/30 Python
Python 变量类型详解
2018/10/10 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
车间调度岗位职责
2013/11/30 职场文书
单位在职证明范本
2014/01/09 职场文书
公司周年庆寄语
2019/06/21 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
详解Python自动化之文件自动化处理
2021/06/21 Python
关于Vue中的options选项
2022/03/22 Vue.js