读写文本格式的数据

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. Mysql 多字段去重

    使用group by去重现在有如下表 id name age1 张三 232 李四 343 张三 234 李四 32 需求 : 按照name和age字段联合去重 sql如下 select * from ...

  2. maven项目里的mapper不被加载,解析

    出现这个错误是因为maven加载配置文件是从resource里加载的,所以要配置一下

  3. tensorflow实战系列(二)TFRecordReader

    前面写了TFRecordWriter的生成.这次写TFRecordReader. 代码附上: def read_and_decode(filename):    #根据文件名生成一个队列    fil ...

  4. chrome也可以整张网页截图,保存完整网页为图片

    转自:http://www.webkaka.com/blog/archives/chrome-save-a-webpage.html 关于浏览器截图,一直以为Chrome无能为力,最近发现,原来Chr ...

  5. node.js 爬虫案例

    本案例是爬的一部小说,爬取并存在本地 使用了动态浏览器头部信息,和 动态ip代理, 这2个方式可以有效的伪装自己,不至于被反爬,然后拉黑,之前已有记录,浏览器头部信息,也记录的有, app.js im ...

  6. VC 字符串转化和分割

    原文:点击这里. 备忘:为了适用于Unicode环境,要养成使用_T()宏的习惯 1.格式化字符串 CString s;s.Format(_T("The num is %d."), ...

  7. MySql Delete不走索引问题

    如果delete语句带有查询,写法不对会导致不走索引. 简单粗暴的办法:拆两条sql,一条查询,一条delete ======================= [不走索引的写法] DELETE FR ...

  8. sql 日期格式

    select CONVERT(varchar(10), getDate(),121) --不要时间2002-01-01 select CONVERT(varchar(10), getDate(),12 ...

  9. 线程池构造类 ThreadPoolExecutor 的 5 个参数

    1.corePoolSize :核心线程数 2.maxPoolSize: 最大线程数 3.keepAliveTime :闲置线程存活时间 4.unit:参数keepAliveTime的时间单位,有7种 ...

  10. VUE 计算属性 vs 侦听属性

    计算属性 vs 侦听属性 Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性.当你有一些数据需要随着其它数据变动而变动时,你很容易滥用 watch——特别是如果你之前使用过 ...