读写文本格式的数据

pandas中的解析函数
函数 说明
read_csv 从文件、url、文件型对象中加载带分隔符的数据,默认分隔符为逗号
read_table 从文件、url、文件型对象中加载带分隔符的数据,默认分隔符为制表符('\t')
read_fwf 读取定宽列格式数据
read_clipboard 读取剪贴板的数据,将网页转为表格时很有用
import pandas as pd
pd.read_csv('1.csv') a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 foo # 如果没有列,就指定为None,会自动生成默认的列
pd.read_csv('2.csv',header=None) 0 1 2 3 4
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 foo # 或者你可以用namse指定列明,但是行索引呢?
pd.read_csv('2.csv',names=['new_1','new_2','new_3','message']) new_1 new_2 new_3 message
1 2 3 4 hello
5 6 7 8 world
9 10 11 12 foo # 你可以指定message为行索引,但是需要重新加入一个列名,否则会报错
names=['new_1','new_2','new_3','new_4','message']
pd.read_csv('2.csv',names=names,index_col='message') new_1 new_2 new_3 new_4
message
hello 1 2 3 4
world 5 6 7 8
foo 9 10 11 12 # 也可以用索引直接指定第4列为行索引,不会报错,但是列标题会依然用message
pd.read_csv('2.csv',names=['new_1','new_2','new_3','message'],index_col=4) new_1 new_2 new_3 message
hello 1 2 3 4
world 5 6 7 8
foo 9 10 11 12 # 层次化索引的行索引,只要把索引名字放入列表中
pd.read_csv('3.csv',index_col=['key1','key2']) new1 new2 new3 new4 message
key1 key2
one a 1 2 3 4 hello
b 5 6 7 8 world
two c 9 10 11 12 foo
d 12 15 12 45 hel # 有些表格可能不是用固定的分隔符去分隔字段,比如用不固定长度的空格,那么可以用正则来匹配,作为分隔符
list(open('4.csv'))
['key1 key2 new1 new2 new3 new4 message\n',
'one a 1 2 3 4 hello\n',
'one b 5 6 7 8 world\n',
'two c 9 10 11 12 foo\n',
'two d 12 15 12 45 hel']
# 正则匹配
pd.read_table('4.csv',index_col=['key1','key2'],sep='\s+') new1 new2 new3 new4 message
key1 key2
one a 1 2 3 4 hello
b 5 6 7 8 world
two c 9 10 11 12 foo
d 12 15 12 45 hel # 你可以用skiprows跳过文件的第二行,第三行
pd.read_table('4.csv',index_col=['key1','key2'],sep='\s+',skiprows=[2,3]) new1 new2 new3 new4 message
key1 key2
one a 1 2 3 4 hello
two d 12 15 12 45 hel # 缺失值的处理,表示专门的缺失值
result = pd.read_csv('4.csv',index_col=['key1','key2'],sep='\s+')
result new1 new2 new3 new4 message
key1 key2
one a 1 2 3 4 hello
b 5 6 8 world NaN
two c 9 10 11 12 NaN
d 12 12 45 hel NaN # 查看是否缺失,返回布尔值
pd.isnull(result) new1 new2 new3 new4 message
key1 key2
one a False False False False False
b False False False False True
two c False False False False True
d False False False False True # 指定为缺失值,我感觉这个有毒,还可以用字典为各列指定不同的NA值,na_values里必须是一个列表
result = pd.read_csv('4.csv',index_col=['key1','key2'],sep='\s+',na_values=[9,10])
result new1 new2 new3 new4 message
key1 key2
one a 1.0 2.0 3 4 hello
b 5.0 6.0 8 world NaN
two c NaN NaN 11 12 NaN
d 12.0 12.0 45 hel NaN
逐块读取文本文件

在处理很大的文件时,你可能只想取出一小部分或者逐块的迭代读取

result = pd.read_table('comments.csv',sep=',')
result.info() <class 'pandas.core.frame.DataFrame'>
RangeIndex: 12023 entries, 0 to 12022
Data columns (total 10 columns):
id 12023 non-null int64
name 12023 non-null object
content 12022 non-null object
today_time 12023 non-null object
fordearmetype 12023 non-null object
appenddays 12023 non-null int64
appendtime 735 non-null object
appendcontent 735 non-null object
itemid 12023 non-null int64
title 12023 non-null object
dtypes: int64(3), object(7)
memory usage: 939.4+ KB # 避免读取整个文件,通过nrows进行指定,这里我们读取5行
pd.read_csv('comments.csv',nrows=5) id name content today_time fordearmetype appenddays appendtime appendcontent itemid title
0 75 b***拉 此用户没有填写评论! 2018/8/21 08:00:35 颜色分类:优雅黑;尺码:70A 79 2018-10-24 15:32:36 这款我买了好几个颜色~超级好穿很舒服,不勒肉,滑滑凉凉的,天热穿应该很透气。也不是很松弛的那... 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
1 76 j***n 此用户没有填写评论! 2018/10/18 19:02:44 颜色分类:灰色1;尺码:75A 18 2018-10-22 11:38:30 不知道是因为面料差还是工艺差,这个文胸穿上身后非常非常扎人,简直1分钟都不能忍。把能加工的地... 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
2 77 心***凯 小心 美楠推荐啦!炒鸡喜欢。无限回购感觉小胸胸都大了呢!宝宝十八啦!现在想无限吐槽... 2018/10/10 09:33:26 颜色分类:黑色1;尺码:75A 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
3 78 傻***瓜 第一次尝试这种不聚拢的内衣,同事推荐来买了,只从同事种草了悦小心的内衣,就天天跟我嚷嚷,多舒... 2018/10/13 11:05:51 颜色分类:黑色1;尺码:70A 11 2018-10-24 23:58:22 好 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
4 79 桃***e 之前在哔哩哔哩里看见一个up主推荐的,从来没有在网上购买过内衣,但是因为被包装和内衣的颜值给... 2018/10/20 20:05:27 颜色分类:白色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣 # 要逐块读取文件,需要设置chunksize
chunker = pd.read_csv('comments.csv',chunksize=1000) # 这个TextFileReader对象可以遍历处理
# 返回N个数值1000的大小文件
list1 = []
for i in chunker:
list1.append(i.id.count())
# 可以看见分批次的把文件变成了1000的大小
list1
[1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 23] # TextFileReader可以get_chunk,读取任意大小的文件,必须开启iterator,否则报错。
data = pd.read_csv('comments.csv',iterator=True)
data.get_chunk(20) id name content today_time fordearmetype appenddays appendtime appendcontent itemid title
0 75 b***拉 此用户没有填写评论! 2018/8/21 08:00:35 颜色分类:优雅黑;尺码:70A 79 2018-10-24 15:32:36 这款我买了好几个颜色~超级好穿很舒服,不勒肉,滑滑凉凉的,天热穿应该很透气。也不是很松弛的那... 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
1 76 j***n 此用户没有填写评论! 2018/10/18 19:02:44 颜色分类:灰色1;尺码:75A 18 2018-10-22 11:38:30 不知道是因为面料差还是工艺差,这个文胸穿上身后非常非常扎人,简直1分钟都不能忍。把能加工的地... 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
2 77 心***凯 小心 美楠推荐啦!炒鸡喜欢。无限回购感觉小胸胸都大了呢!宝宝十八啦!现在想无限吐槽... 2018/10/10 09:33:26 颜色分类:黑色1;尺码:75A 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
3 78 傻***瓜 第一次尝试这种不聚拢的内衣,同事推荐来买了,只从同事种草了悦小心的内衣,就天天跟我嚷嚷,多舒... 2018/10/13 11:05:51 颜色分类:黑色1;尺码:70A 11 2018-10-24 23:58:22 好 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
4 79 桃***e 之前在哔哩哔哩里看见一个up主推荐的,从来没有在网上购买过内衣,但是因为被包装和内衣的颜值给... 2018/10/20 20:05:27 颜色分类:白色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
5 80 f***尽 这一款材质超级超级舒服摸起来超软的不是廉价的材质而且是我很喜欢的薄度唉 嘻嘻嘻五星好评送给客... 2018/10/24 13:31:35 颜色分类:黑色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
6 81 r***t 料子很舒服,比起外面的 很亲肤。不过买的时候一定要注意买比平时大一个杯,这款内衣偏小码的 2018/10/22 14:18:12 颜色分类:黑色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
7 82 j***p 非常柔软,心水了很久,这次终于买了~就是没有新包装很不开心!! 2018/10/24 00:17:01 颜色分类:白色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
8 83 清***月 非常贴合,也很舒适,是目前的内衣中最合适的了,一开始看到有博主推荐,所以想买了试一试,结果发... 2018/10/21 20:16:09 颜色分类:黑色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
9 84 q***1 ForDearMe,这个名字就很好听,虽然我不爱穿内衣,但是毕竟不是所有场合都可以这么随性的... 2018/10/12 07:48:20 颜色分类:黑色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
10 85 蜜***珀 挺舒服的一款内衣,有钢圈但是不会很压迫。小胸不空杯也不聚拢,穿上衣服会显得平,但确实很舒服,... 2018/10/17 15:29:07 颜色分类:黑色1;尺码:75A 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
11 86 n***o 挺舒服的内衣,穿了以后有点胸型,小a也可以小性感~我胸骨高,穿上完全不用担心~盒子用来收纳包... 2018/10/21 10:35:11 颜色分类:灰色1;尺码:75A 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
12 87 蔡***清 终于找到我这个宇宙无敌大平胸可以穿的内衣了,试过很多家,要么空杯,要么不敢穿。这个是真的舒服... 2018/10/24 12:49:57 颜色分类:黑色1;尺码:70A 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
13 88 a***7 超级好穿 好像棉花一样 杯是偏小的 要买大一码 但是真的舒服到不行 秒杀什么68 2018/10/22 22:47:53 颜色分类:黑色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
14 89 y***g 喜歡貨品,客服不行,回購三次共9份也不因為拍錯連接退19元差價,可惜。 2018/10/24 07:05:31 颜色分类:黑色1;尺码:75A 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
15 90 滴***香 非常好,柔软舒适,平胸也能填满 2018/10/18 14:13:10 颜色分类:黑色1;尺码:70A 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
16 91 一***子 朋友推荐的店。内衣很好看也很舒服。会再来~ 2018/10/23 12:25:03 颜色分类:黑色1;尺码:70C 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
17 92 z***1 根据客服咨询,70A,拍了70B,大小很合适,感谢,确实不聚拢,但是内衣无异味,轻薄柔软,穿... 2018/10/8 13:21:56 颜色分类:白色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
18 93 k***y 此用户没有填写评论! 2018/10/4 19:32:30 颜色分类:黑色1;尺码:70B 17 2018-10-07 09:38:57 穿了一段时间才来评价,客服很耐心,包装也很好看。一直都穿的B,所以买了B,到货之后发现小了,... 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣
19 94 w***1 内衣很薄,穿了完全不空杯,包装很好,穿着内衣躺在床上没有不舒服的感觉,穿其他内衣就会很不舒服... 2018/10/19 19:20:16 颜色分类:黑色1;尺码:70B 0 NaN NaN 571538277692 ForDearMe悦小心绒花优雅杯1/2罩杯文胸薄款聚拢小胸性感上托内衣

Pandas文本操作之读取操作的更多相关文章

  1. JAVA之旅(二十六)——装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片

    JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义re ...

  2. Android设备与外接U盘实现数据读取操作

    现在越来越多手机支持OTG功能,通过OTG可以实现与外接入的U盘等USB设备实现数据传输.关于OTG,可以参考: http://blog.csdn.net/srw11/article/details/ ...

  3. Java IO_003.Reader与Writer--字符流以及编码对数据的操作(读取与写入)

    Java IO之Reader与Writer对象常用操作(包含了编码问题的处理) 涉及到文件(非文件夹)内容的操作,如果是纯文本的情况下,除了要用到File(见之前文章),另外就必须用到字符输入流或字符 ...

  4. Pandas对于CSV的简单操作

    Pandas对于CSV的简单操作 最近在研究pandas对于csv文件的读取以及一些操作,网上的信息比较乱,写篇博客记录一下,毕竟自己写的才是最适合自己的用法. 首先我们应该都知道,pandas是一个 ...

  5. java 的文件读取操作

    /** * @param filePath 文件的全路径 * 返回我们读取到的文件内容 * **/ public static String readFile(String filePath) { F ...

  6. 文本处理sed常用操作

    文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a sim ...

  7. access数据库频繁读取操作会出现 System.Data.OleDb.OleDbException 的异常解决

    asp.net access数据库 本来想着打开一个access数据库连接后,不关闭,下次操作数据了,直接拿来用,谁知道连着测试64次后(大概这么多次),就会出现System.Data.OleDb.O ...

  8. Perl中文件读取操作

    Perl中文件读取操作 http://blog.csdn.net/yangxuan12580/article/details/51506216

  9. jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条

    jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒 ...

随机推荐

  1. 数据持久化—真机上的Plist写入

    其实写入不到真机里面主要是你写入时,当前那文件夹里你要写入的plist根本不存在 所以你怎么写都写不进去,所以你必须先创建你要写入的plist; 你用这样初始化程序就能自己创建: NSMutableA ...

  2. git代理设置

    git config --global http.proxy http://127.0.0.1:1080git config --global https.proxy https://127.0.0. ...

  3. sql server无log ldf日志文件附件mdf数据库重新生成ldf日志文件

    CREATE DATABASE TestDB    ON    (    FILENAME ='D:\TestDB.mdf' --路径     ) for ATTACH_REBUILD_LOG    

  4. 《算法》第四章部分程序 part 17

    ▶ 书中第四章部分程序,包括在加上自己补充的代码,无环图最短 / 最长路径通用程序,关键路径方法(critical path method)解决任务调度问题 ● 无环图最短 / 最长路径通用程序 pa ...

  5. oracle查询重复的数据

    在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件.块.行上.在重复的记录中,可能所有列的内容都相同,但rowi ...

  6. php7内核执行流程(转载留记录)

  7. struts2默认临时文件更改

    struts的文件上传mutifile会有一个临时文件地址,如果需要使用自己指定临时文件地址需要在struts.xml中设置以下内容. <constant name="struts.m ...

  8. TypeScript set get

    private _id:number; public get id():number{ return this._id; } public set id(value:number){ this._id ...

  9. 【377】only one element in a tuple

    Recently I am doing the assignment of COMP9021. It is too difficult and it is about the Knight and K ...

  10. 计算机网络协议包头赏析-IP

    上次和大家聊了聊以太网的帧格式,本文会讲解IP数据报格式的定义. == 开门见山,先上图: 任何一个IP数据报都是由首部和数据两部分组成,而且首部基本是固定长度的,长度为20字节.这一点很重要,其他都 ...