Python的科学计算包- Pandas
Pandas
Pandas是Python Data Analysis Library或Pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量的库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是Python成为强大而高效的数据分析环境的重要因素之一。百度百科
本篇教程使用的所有资源文件下载地址:
- ex1.csv
- ex2.csv
- ex3.csv
- ex3.txt
- ex4.csv
- ex5.csv
- ex6.csv
- ex7.csv
- csv_mindex.csv
- frame_pickle
- out.csv
- test_file.csv
- tseries.csv
Pandas有两个主要的数据结构
- 1.Series
- 数组与标签
- 可以通过标签选取数据
- 定长的有序字典
- 2.Dataframe
- 表格型数据结构
- 行索引、列索引
Series的基本使用
1 | # coding: utf-8 |
DataFrame的基本使用
启蒙于R语言,它的同一列必须是同一种类型
可以面向”行”来操作,也可以面向”列”来操作
1 | # coding: utf-8 |
读写文本格式数据
Pandas提供一些用于将表格型数据读取为DataFrame对象的函数
函数:
- read_csv 逗号为分隔符
- read_table 制表符为分割符,如:’\t’
- read_fwf 没有分隔符,定宽列
- read_clipboard 读取剪切板中的数据
函数选项:
- 索引
- 类型推断和数据转换
- 日期解析
- 迭代
- 不规整数据问题
1 | # coding: utf-8 |
逐行读取文本文件
比如文件内容很大,我们不可能一下子把所有的内容直接从文件都读取出来,为了速度,我们可以指定多少行、指定多大的方式来读取
1 | # coding: utf-8 |
在这里我用的Pandas v0.22.0,这是最新的版本,但是遇到了错误:AttributeError: 'Series' object has no attribute 'order'
我不知道怎么解决,如果有小伙伴知道,请分享以下
1 | # coding: utf-8 |
手工处理分隔符的方式
1 | # coding: utf-8 |
Excel文件的读取
因为很多的数据都是从Excel过来的,但是这两个组件需要安装,使用PyCharm如何安装呢? 看这篇文章,因为安装的方式是一样的,只不过名称不同
- Excel基本库,
- 读取:xlrd
- 写入:xlwt
- 基本电子表格交互
- 生成工作簿
- 从工作簿中读取数据
- 使用OpenPyxl
- 使用pandas读写
Excel中的数据类型和Python的数据类型对比
类型 编号 Python类型
XL_CELL_EMPTY 0 空字符串
XL_CELL_TEXT 1 Unicode字符串
XL_CELL_NUMBER 2 Float
XL_CELL_DATA 3 Float
XL_CELL_BOOLEAN 4 Int( 1 = True, 0 = False)
XL_CELL_ERROR 5 Int表示Excel内部编码
XL_CELL_BLANK 6 空字符串,仅当formatting into = True
实例讲解,读取和写入excel
1 | # coding: utf-8 |
JSON数据
JSON数据(JavaScript Object Notation)
数据类型:
- 对象
- 数组
- 字符串
- 数值
- 布尔值
- null
JSON库的loads方法,JSON这个工具是自带的。
1 | # coding: utf-8 |
二进制数据格式的读取和写入
pickle存储的数据格式是短期的存储,不能永远保存数据永远是正确的,所以仅仅是用于短期和临时的存储
1 | # coding: utf-8 |
HDF5格式
HDF5介绍 是一种数据格式,用于大量的数据进行科学计算,可移植性高,可扩展型高。
很大大型机构的数据存储格式都采用了HDF5,比如:NASA的地球观测系统,MATLAB等等。
1 | # coding: utf-8 |
使用HTML和Web API
需要安装request工具
1 | # coding: utf-8 |
使用数据库
自带sqlite3
1 | # coding: utf-8 |