数据分析从零开始实战,Pandas 读写 TSV/Json 数据
![数据分析从零开始实战,Pandas读写TSV/Json数据](https://static001.geekbang.org/infoq/b9/b90808f850e648450249eefede1cead8.jpeg)
这是我参与 11 月更文挑战的第 17 天。
一、写在前面
本系列学习笔记参考书籍: 《数据分析实战》托马兹·卓巴斯,会将自己学习本书的笔记分享给大家,同样开成一个系列『数据分析从零开始实战』。
上一篇文章中带大家了解了数据分析基础,配置好了数据分析的基本环境,以及利用pandas
模块读写 csv 文件,在本文开头,我也补充了 csv 与 tsv 的基本介绍与区别,意在更好的让大家理解相关知识点,本文将带大家继续学习文件读取。
点击查看第一篇文章:# 数据分析从零开始实战,Pandas读写CSV数据
二、上节补充
CSV
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
TSV
TSV 是 Tab-separated values 的缩写,即制表符分隔值。Python 的 csv 模块准确的讲应该叫做 dsv 模块,因为它实际上是支持范式的分隔符分隔值文件(DSV,delimiter-separated values)的。
三、基本知识概要
1.利用 pandas 读写 tsv 文件
2.利用 pandas 读写 json 文件
四、开始动手动脑
1.利用 pandas 读写 tsv 文件
在文章开头我已经说明了 csv 与 tsv 的差别,相信部分看过第一篇文章的读者应该知道怎么处理 tsv 文件了。
csv 与 tsv 只是内容的分隔符不一样,前者是,
,后者是\t
,python 读取这两类文件都使用csv
模块,也可以直接利用pandas
,这里我们讲利用 pandas 读取方式,使用的函数read_csv()
与to_csv()
在上一篇 文章中有详细介绍,这里我直接上案例代码。
(1) 读取 tsv 文件代码
运行结果
(2) 写 tsv 文件代码
运行结果
![](https://static001.geekbang.org/infoq/dd/ddf6cbef432a2d29483a99f420e24c25.webp?x-oss-process=image/resize,p_80/format,jpg)
(3)号外加餐
利用 csv 模块也可以直接读取 csv 和 tsv 文件
csvfile,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加"b"标志参数。
qdialect,编码风格,默认为 excel 的风格,也就是用逗号(,)分隔,dialect 方式也支持自定义
fmtparam,格式化参数,用来覆盖之前 dialect 对象指定的编码风格。
2.利用 pandas 读写 json 文件
(1)利用 pandas 读取 json 文件
运行结果
![](https://static001.geekbang.org/infoq/9e/9ea295228007f9b3529f25642a5a023a.webp?x-oss-process=image/resize,p_80/format,jpg)
函数解析
read_json(path_or_buf,orient,encoding,numpy)
常见参数解析:
path_or_buf:字符串,表示文件路径;
orient:指示预期的 JSON 字符串格式。可以 to_json()使用相应的方向值生成兼容的 JSON 字符串。一组可能的方向是:
encoding:字符串,默认为'utf-8';
numpy:布尔值,默认为 False,直接解码为 numpy 数组。仅支持数字数据,但支持非数字列和索引标签。另请注意,如果 numpy = True,则每个术语的 JSON 顺序必须相同。
(2)利用 pandas 写入 json 文件
运行结果
![](https://static001.geekbang.org/infoq/e0/e0372be6b8cb650e49de9fc1c25badee.webp?x-oss-process=image/resize,p_80/format,jpg)
函数解析
to_json(path_or_buf,orient,encoding,index)
前三个参数和 read_json()里的一样
index:False 则选择不写入索引,默认为 True。
【注】利用 json 模版的 loads()与 dumps()方法也可以实现 json 文件的读写。
五、送你的话
我始终觉得,要想学好一门语言,底层是最主要的,所以不要觉得入门的这些基本东西太简单,学好基础,才能成大牛。
坚持 and 努力 : 终有所获。
思想很复杂,
实现很有趣,
只要不放弃,
终有成名日。
—《老表打油诗》
下期见,我是爱猫爱技术的老表,如果觉得本文对你学习有所帮助,欢迎点赞、评论、关注我!
版权声明: 本文为 InfoQ 作者【老表】的原创文章。
原文链接:【http://xie.infoq.cn/article/1f5051aa410e04b8650fd54c1】。文章转载请联系作者。
评论