本文转载自https://blog.csdn.net/brucewong0516/article/details/79092579

pandas包是一个高效的文件读取工具,适用于txt,excel,等数据格式的文件,具有很强的自动识别功能。

pandas.read_csv可以读取CSV(逗号分割)文件、文本类型的文件text、log类型到DataFrame,下面是pandas.read_csv常用参数整理

pandas也支持文件的部分导入和选择迭代,更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html

参数filepath_or_buffer :

可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中本地文件读取。 
实例1:实现图片中文件的读取,注意图片中的所有输入基于英文输入下得到,返回DataFrame文件 

In [1]: import pandas as pd
#读取out.log文件,其他的参数默认
In [2]: out = pd.read_csv('out.log') In [3]: out
Out[3]:
book kook
0 joke2 dddd
1 fang3 NaN
2 test1 NaN
3 test2 NaN
4 test3 NaN
5 1997/10/2 NaN

实例2:读取股票数据csv文件,返回DataFrame文件

In [4]: stock = pd.read_csv('000777.csv')

In [5]: stock
Out[5]:
date code closing high low opening pre_closing zde \
0 2017/1/20 '000777 21.17 21.29 20.90 20.90 20.86 0.31
1 2017/1/19 '000777 20.86 21.14 20.82 21.12 21.12 -0.26
2 2017/1/18 '000777 21.12 21.44 21.09 21.40 21.37 -0.25
3 2017/1/17 '000777 21.37 21.49 20.75 21.17 21.15 0.22
4 2017/1/16 '000777 21.15 22.50 20.28 22.50 22.53 -1.38
5 2017/1/13 '000777 22.53 22.88 22.43 22.71 22.85 -0.32
6 2017/1/12 '000777 22.85 23.53 22.75 23.41 23.51 -0.66

参数sep

如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’。

In [6]: a = pd.read_csv('out.log',sep = '\s')
C:/Anaconda3/Scripts/ipython-script.py:1: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
if __name__ == '__main__':
#设定空值作为分隔符,','不会分割每一行的数据
In [7]: a
Out[7]:
book,kook
0 joke2,dddd
1 fang3
2 test1
3 test2
4 test3
5 1997/10/2
#空值的设定两种方式:' ' or '\s'
In [9]: a = pd.read_csv('out.log',sep = ' ') In [10]: a
Out[10]:
book,kook
0 joke2,dddd
1 fang3
2 test1
3 test2
4 test3
5 1997/10/2

参数delimiter :

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

In [13]: a = pd.read_csv('out.log',sep = ', ',delimiter='o')
#此时sep = ','设定失效
In [14]: a
Out[14]:
b Unnamed: 1 k,k Unnamed: 3 k
0 j ke2,dddd NaN NaN NaN
1 fang3 NaN NaN NaN NaN
2 test1 NaN NaN NaN NaN
3 test2 NaN NaN NaN NaN
4 test3 NaN NaN NaN NaN
5 1997/10/2 NaN NaN NaN NaN

参数delim_whitespace :

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

In [20]: a = pd.read_csv('out.log',delim_whitespace = True)

In [21]: a
Out[21]:
book,kook
0 joke2,dddd
1 fang3
2 test1
3 test2
4 test3
5 1997/10/2

参数header :

指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0【第一行数据】,否则设置为None。如果明确设定 header = 0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉。注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。

In [22]: a = pd.read_csv('out.log',delim_whitespace = True,header = None)

In [23]: a
Out[23]:
0
0 book,kook
1 joke2,dddd
2 fang3
3 test1
4 test2
5 test3
6 1997/10/2

参数names :

用于结果的列名列表,如果数据文件中没有列标题行,就需要执行 header=None。names属性在header之前运行默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。

In [32]: a = pd.read_csv('out.log',names='ko')

In [33]: a
Out[33]:
k o
0 book kook
1 joke2 dddd
2 fang3 NaN
3 test1 NaN
4 test2 NaN
5 test3 NaN
6 1997/10/2 NaN

参数index_col :

用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。

In [45]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=0)
#指定第一列作为行索引
In [46]: a
Out[46]:
XX1
XX0
book kook
joke2 dddd
fang3 NaN
test1 NaN
test2 NaN
test3 NaN
1997/10/2 NaN In [47]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1)
#指定第二列作为行索引
In [48]: a
Out[48]:
XX0
XX1
kook book
dddd joke2
NaN fang3
NaN test1
NaN test2
NaN test3
NaN 1997/10/2

参数usecols:

返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。

参数prefix:

在没有列标题时,也就是header设定为None,给列添加前缀。例如:添加prefix= ‘X’ 使得列名称成为 X0, X1, …

In [38]: a = pd.read_csv('out.log',header=None,prefix='XX')

In [39]: a
Out[39]:
XX0 XX1
0 book kook
1 joke2 dddd
2 fang3 NaN
3 test1 NaN
4 test2 NaN
5 test3 NaN
6 1997/10/2 NaN

参数dtype:

每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}

In [49]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1,dtype={'XX0':str})

In [50]: a
Out[50]:
XX0
XX1
kook book
dddd joke2
NaN fang3
NaN test1
NaN test2
NaN test3
NaN 1997/10/2 In [51]: a['XX0'].values
Out[51]: array(['book', 'joke2', 'fang3', 'test1', 'test2', 'test3', '1997/10/2'], dtype=object) In [52]: a['XX0'].values[0]
Out[52]: 'book' In [53]: type(a['XX0'].values[0])
Out[53]: str

参数skipinitialspace:

忽略分隔符后的空白(默认为False,即不忽略).

参数skiprows :

需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。

In [54]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1,skiprows= 1)
#略去第二行的数据
In [55]: a
Out[55]:
XX0
XX1
dddd joke2
NaN fang3
NaN test1
NaN test2
NaN test3
NaN 1997/10/2

参数nrows :

需要读取的行数(从文件头开始算起)。

In [56]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1,skiprows= 1,nrows=4)

In [57]: a
Out[57]:
XX0
XX1
dddd joke2
NaN fang3
NaN test1
NaN test2

参数na_values :

一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认为‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘nan’`.

参数keep_default_na:

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

参数na_filter:

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

参数skip_blank_lines :

如果为True,则跳过空行;否则记为NaN。

python读取数据文件:pandas包详解的更多相关文章

  1. python数据分析数据标准化及离散化详解

    python数据分析数据标准化及离散化详解 本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下 标准化 1.离差标准化 是对原始数据的线性变换,使结果映射到[0 ...

  2. php中读取大文件实现方法详解

    php中读取大文件实现方法详解 来源:   时间:2013-09-05 19:27:01   阅读数:6186 分享到:0 [导读] 本文章来给各位同学介绍php中读取大文件实现方法详解吧,有需要了解 ...

  3. 三十一、python中urllib和requests包详解

    A.urllibimport urllibimport urllib.requestimport json '''1.loads,dumpsjson.loads():将字符串转化成python的基础数 ...

  4. Python读取SQLite文件数据

    近日在做项目时,意外听说有一种SQLite的数据库,相比自己之前使用的SQL Service甚是轻便,在对数据完整性.并发性要求不高的场景下可以尝试! 1.SQLite简介: SQLite是一个进程内 ...

  5. Python中__init__.py文件的作用详解

    转自http://www.jb51.net/article/92863.htm Python中__init__.py文件的作用详解 http://www.jb51.net/article/86580. ...

  6. 常见 jar包详解

        常见 jar包详解 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期 ...

  7. python+requests接口自动化测试框架实例详解

    python+requests接口自动化测试框架实例详解   转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...

  8. (转)python标准库中socket模块详解

    python标准库中socket模块详解 socket模块简介 原文:http://www.lybbn.cn/data/datas.php?yw=71 网络上的两个程序通过一个双向的通信连接实现数据的 ...

  9. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

随机推荐

  1. sqlite文件的建立和as的应用,

    建立目录D:\android_projects\qrscan\app\src\main\assets把数据库文件d:\sqlite_files\device.db 拷贝到 D:\android_pro ...

  2. cookie 和session的简单比较

    1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session ...

  3. IO—》转换流和缓冲流

    转换流 摘要: InputStreamReader和OutputStreamWriter他们分别是FileReader和FileWriter的父类 当只是单纯的读写文件而不改变文件的编码格式时,就分别 ...

  4. 自定义bind

    Function.prototype.mybind = function (context, ...args1) { // 判断是否为函数 if (typeof this !== 'function' ...

  5. C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!

    前几天有个同学加我QQ私聊我说他们老师布置了一个贪吃蛇,他不知道怎么写所以来找我求解,我给他简单讲解了思路和一些难点之后他也能够自己独立将项目完成了!考虑到更多同学可能有贪吃蛇上的问题,今天有时间就来 ...

  6. 怎么下载腾讯课堂M3U8格式的视频

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 用过腾讯课堂的小伙伴们可能 ...

  7. easyui 属性 事件 方法

    在easyui当中 属性和事件可以按照json定义的对象来使用. /*在easyui中 属性和事件的使用方法相同*/ var loginWinJson = { closed: false, closa ...

  8. 网站favicon.ico 图标

    favicon.ico一般用于作为缩略的网站图标,它显示在浏览器的地址栏或者标签上.目前主要的浏览器都支持favicon.ico图标. 一.制作favicon图标 1.把图标切成png图片. 2.把p ...

  9. python深挖65万人的明星贴吧,探究上万个帖子的秘密

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 最近一直在关注百度明星吧,发现很多有趣的帖子,于是我就想用python把这 ...

  10. 使用Vscode进行Python开发环境配置

    Vscode是是一个强大的跨平台工具,我自己电脑是mac,公司电脑是win而且是内部环境,导致公司安装软件很费劲.好在vscode许多插件能直接离线安装,省去了很多麻烦. 很多人学习python,不知 ...