本文共 1760 字,大约阅读时间需要 5 分钟。
阅读大概需要5分钟
作者老齐
编辑 zenRRan 有修改
链接 http://wiki.jikexueyuan.com/project/start-learning-python/311.html
Pandas 是基于 NumPy 的一个非常好用的库,正如名字一样,人见人爱。之所以如此,就在于不论是读取、处理数据,用它都非常简单。前两天介绍了 最常见的Pandas数据类型,,今天我们将是最后一次学Pandas了,这次讲的读取csv文件。
关于csv文件
csv 是一种通用的、相对简单的文件格式,在表格类型的数据中用途很广泛,很多关系型数据库都支持这种类型文件的导入导出,并且 excel 这种常用的数据表格也能和 csv 文件之间转换。
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须象二进制数字那样被解读的数据。CSV 文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
从上述维基百科的叙述中,重点要解读出“字段间分隔符”“最常见的是逗号或制表符”,当然,这种分隔符也可以自行制定。比如下面这个我命名为 marks.csv 的文件,就是用逗号(必须是半角的)作为分隔符:
其实,这个文件要表达的事情是(如果转化为表格形式):
普通方法读取
最简单、最直接的就是 open() 打开文件:
此方法可以,但略显麻烦。
Python 中还有一个 csv 的标准库,足可见 csv 文件的使用频繁了。
什么时候也不要忘记这种最佳学习方法。从上面结果可以看出,csv 模块提供的属性和方法。仅仅就读取本例子中的文件:
算是稍有改善。
用 Pandas 读取
如果对上面的结果都有点不满意的话,那么看看 Pandas 的效果:
看了这样的结果,你还不感觉惊讶吗?你还不喜欢上 Pandas 吗?这是多么精妙的显示。它是什么?它就是一个 DataFrame 数据。
还有另外一种方法:
如果你有足够的好奇心来研究这个名叫 DataFrame 的对象,可以这样:
一个一个浏览一下,通过名字可以直到那个方法或者属性的大概,然后就可以根据你的喜好和需要,试一试:
这几个是让你回忆一下上一节的。从 DataFrame 对象的属性和方法中找一个,再尝试:
按照竖列"Python"的值排队,结果也是很让人满意的。下面几个操作,也是常用到的,并且秉承了 Python 的一贯方法:
可以说,当你已经掌握了通过 dir() 和 help() 查看对象的方法和属性时,就已经掌握了 pandas 的用法,其实何止 pandas,其它对象都是如此。
读取其它格式数据
csv 是常用来存储数据的格式之一,此外常用的还有 MS excel 格式的文件,以及 json 和 xml 格式的数据等。它们都可以使用 pandas 来轻易读取。
.xls 或者 .xlsx
在下面的结果中寻觅一下,有没有跟 excel 有关的方法?
虽然没有类似 read_csv() 的方法(在网上查询,有的资料说有 read_xls() 方法,那时老黄历了),但是有 ExcelFile 类,于是乎:
我这里少了一个模块,看报错提示, 用pip 安装 openpyxl 模块:sudo pip install openpyxl。继续:
结果中,columns 的名字与前面 csv 结果不一样,数据部分是同样结果。从结果中可以看到,sheet1 也是一个 DataFrame 对象。
每日托福单词
immune adj. 免疫的
apin v. 旋转 n. 旋转
fungus n. 真菌
archaeology n. 考古学
wary adj. 小心的,机警的
推荐阅读:
欢迎关注深度学习自然语言处理公众号,我会每天更新自己在机器学习,深度学习,NLP,linux,python以及各种数学知识学习的一点一滴!再小的人也有自己的品牌!期待和你一起进步!
长按识别二维码
点个赞呗
转载地址:http://ipenn.baihongyu.com/