Pandas(文件格式)
将数据写出到文本格式
数据也可以被输出为分隔符格式的文本
![](https://img.haomeiwen.com/i13183583/e9d135c65b0f4a99.png)
DataFrame的to_csv方法,我们可以将数据写到一个以逗号分隔的文件中
![](https://img.haomeiwen.com/i13183583/ec486bf08900bb86.png)
使用其他分隔符(由于这里直接写出到sys.stdout,所以仅仅是打印出文本结果而已)
![](https://img.haomeiwen.com/i13183583/081b2d402c0bc19a.png)
缺失值在输出结果中会被表示为空字符串。你可能希望将其表示为别的标记值。
![](https://img.haomeiwen.com/i13183583/9a3c6c763bde6bbc.png)
没有设置其他选项,则会写出行和列的标签。当然,它们也都可以被禁用。
![](https://img.haomeiwen.com/i13183583/d28d40a8ccb1b046.png)
你还可以只写出一部分的列,并以你指定的顺序排列。
![](https://img.haomeiwen.com/i13183583/b31b780f43024788.png)
![](https://img.haomeiwen.com/i13183583/86a5db62f204c715.png)
处理分隔符格式
JSON数据 pandas.read_json可以自动将特别格式的JSON数据集转换为Series或DataFrame
![](https://img.haomeiwen.com/i13183583/1b85cc0d37bc7466.png)
从pandas输出到JSON,使用to_json方法
![](https://img.haomeiwen.com/i13183583/ace06be73ecfaed4.png)
XML和HTML:Web信息收集
pandas有一个内置的功能,read_html,它可以使用lxml和Beautiful Soup自动将HTML文件中的表格解析为DataFrame对象。
使用例子数据:美国联邦存款保险公司一个HTML文件,它记录了银行倒闭的情况。
安装read_html用到的库
conda install lxml
pip install beautifulsoup4 html5lib
需要说明的是安装第三库需要退出ipython的环境,也就是一开始进来的地方。笔者已经安装过了,所以显示页面会有所不同。
![](https://img.haomeiwen.com/i13183583/fc5ec6a4297bf1bd.png)
![](https://img.haomeiwen.com/i13183583/c3ac3e3ec20b61ff.png)
做一些数据清洗和分析,比如计算按年份计算倒闭的银行数
![](https://img.haomeiwen.com/i13183583/c1eed6d12aa0d839.png)
二进制数据格式
pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle方法
![](https://img.haomeiwen.com/i13183583/3f7a3535e9345edf.png)
读取pickle数据
![](https://img.haomeiwen.com/i13183583/0cf1a81ef69adb97.png)
注意: pickle仅建议用于短期存储格式。其原因是很难保证该格式永远是稳定的;今天pickle 的对象可能无法被后续版本的库unpickle出来。
使用HDF5格式
HDF5是一种存储大规模科学数组数据的非常好的文件格式。它可以被作为C标准库,带有许多语言的接口,如Java、Python和MATLAB等。HDF5中的HDF指的是层次型数据格式 (hierarchical data format)。每个HDF5文件都含有一个文件系统式的节点结构,它使你能够存储多个数据集并⽀支持元数据。与其他简单格式相比,HDF5支持多种压缩器的即时压缩, 还能更高效地存储重复模式数据。对于那些非常大的无法直接放入内存的数据集,HDF5就是 不错的选择,因为它可以高效地分块读写。
![](https://img.haomeiwen.com/i13183583/7618ebb1bfccbabb.png)
HDF5文件中的对象可以通过与字典一样的API进行获取
![](https://img.haomeiwen.com/i13183583/0e8ce3cfb7aac092.png)
HDFStore支持两种存储模式,’fixed’和’table’。后者通常会更慢,但是支持使用特殊语法进行查询操作。
![](https://img.haomeiwen.com/i13183583/016ea518b511566a.png)
读取Microsoft Excel文件
pandas的ExcelFile类或pandas.read_excel函数支持读取存储在Excel 2003(或更高版本)中的表格型数据。这两个工具分别使用扩展包xlrd和openpyxl读取XLS和XLSX文件。你可以用 pip或conda安装它们。
![](https://img.haomeiwen.com/i13183583/9563bb407cbd3bec.png)
将pandas数据写入为Excel格式
![](https://img.haomeiwen.com/i13183583/a6d16c09fae3e331.png)
![](https://img.haomeiwen.com/i13183583/ea441087571f05e2.png)
Web APIs交互
![](https://img.haomeiwen.com/i13183583/f71b82af4f030b24.png)
数据库交互
在商业场景下,大多数数据可能不是存储在文本或Excel文件中。基于SQL的关系型数据库 (如SQL Server、PostgreSQL和MySQL等)使用非常广泛。
这种数据规整操作相当多,你肯定不想每查一次数据库就重写一次。SQLAlchemy项目是一个 流行的Python SQL工具,它抽象出了SQL数据库中的许多常见差异。pandas有一个read_sql 函数,可以让你轻松的从SQLAlchemy连接读取数据。
![](https://img.haomeiwen.com/i13183583/c24fa4ef93f336d5.png)