Pandas文本操作之读取操作
读写文本格式的数据
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文本操作之读取操作的更多相关文章
- JAVA之旅(二十六)——装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片
JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义re ...
- Android设备与外接U盘实现数据读取操作
现在越来越多手机支持OTG功能,通过OTG可以实现与外接入的U盘等USB设备实现数据传输.关于OTG,可以参考: http://blog.csdn.net/srw11/article/details/ ...
- Java IO_003.Reader与Writer--字符流以及编码对数据的操作(读取与写入)
Java IO之Reader与Writer对象常用操作(包含了编码问题的处理) 涉及到文件(非文件夹)内容的操作,如果是纯文本的情况下,除了要用到File(见之前文章),另外就必须用到字符输入流或字符 ...
- Pandas对于CSV的简单操作
Pandas对于CSV的简单操作 最近在研究pandas对于csv文件的读取以及一些操作,网上的信息比较乱,写篇博客记录一下,毕竟自己写的才是最适合自己的用法. 首先我们应该都知道,pandas是一个 ...
- java 的文件读取操作
/** * @param filePath 文件的全路径 * 返回我们读取到的文件内容 * **/ public static String readFile(String filePath) { F ...
- 文本处理sed常用操作
文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a sim ...
- access数据库频繁读取操作会出现 System.Data.OleDb.OleDbException 的异常解决
asp.net access数据库 本来想着打开一个access数据库连接后,不关闭,下次操作数据了,直接拿来用,谁知道连着测试64次后(大概这么多次),就会出现System.Data.OleDb.O ...
- Perl中文件读取操作
Perl中文件读取操作 http://blog.csdn.net/yangxuan12580/article/details/51506216
- 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操作盒 ...
随机推荐
- python学习笔记_week13
一.前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的功能属性中的 ...
- 用JS 和 jQery获取屏幕的高度和宽度
用的时候,网上找了下,放在一起,方便以后查阅 document.body.clientWidth document.body.offsetWidth(包括线宽)//网页可见区域宽 document.b ...
- linux RPM包管理
查询系统是否安装某个应用 rpm -qa | grep xx 查询系统某个应用的版本信息 rpm -qi 软件包信息 查询某个软件的安装位置 rpm -ql 软件包名 查询文件属于哪个软件 ...
- 笨方法学python 22,前期知识点总结
对笨方法学python,前22讲自己的模糊的单词.函数进行梳理总结如下: 单词.函数 含义 print() 打印内容到屏幕 IDLE 是一个纯Python下自带的简洁的集成开发环境 variable ...
- FireDac 组件说明二
FDUpdateSQL 生成添加,删除,修改SQL语句 TFDMetaInfoQuery 查询数据源信息 TFDEventAlerter 负责处理数据库事件通知 使用TFDEventAlerter类来 ...
- 尚硅谷springboot学习13-配置的加载
配置可以有很多不同的来源,也有不同的加载顺序,下面来具体的看一下 配置文件加载位置 spring boot 启动会扫描以下位置的application.properties或者application. ...
- Haskell语言学习笔记(74)GADTs
GADTs GADTs(Generalised Algebraic Data Types,广义代数数据类型)是对代数数据类型的一种扩展. 它允许在定义数据类型时明确指定类型参数的类型并使用模式匹配. ...
- openwrt中防暴力破解shell的脚本
原文:http://www.right.com.cn/forum/thread-124429-1-1.html 原理:1. snort做入侵检测是很好,但是太大太复杂,我们需要轻量化的操作.当对方进行 ...
- JS实现简单的运行代码 & 侧边广告
/* JS实现简单的运行代码功能 */<!doctype html> <html> <head> <meta charset="utf-8" ...
- 面试官提出的问题应该怎么答?(如开发中使用过EasyUI吗?)
Jquery EasyUI是第三方基于Jquery框架开发的一款轻量级的,侧重于页面显示部分的框架,也可以称为插件. Jquery EasyUI使用比较简单,也有比较全的文档可供参考. 常用的组件就是 ...