第2章介绍的NumPy和它的ndarray对象. 为多维数组提供了高效的存储和处理方法. Pandas是在NumPy的基础上建立的新程序库, 提供DataFrame数据结构. DataFrame带行标签(索引),列标签(变量名),支持相同数据类型和缺失值的多维数组. 和电子表格很像.
NumPy的ndarray提供处理数据常见功能. 但对比如添加标签,处理缺失值,分组,透视等处理起来较难.
3.1 Pandas安装
使用Anaconda, Pandas已经安装好.
检测Pandas版本号
import pandas as pd
import numpy as np
print(pd.__version__,np.__version__) # 不是vision
0.23.0 1.14.3
3.2 Pandas对象介绍
Pandas三个基础数据结构 : Series, DataFrame, Index (注意字母大小写)
3.2.1 Pandas的 Series对象
Series是一个带索引数据的一维数组
# 可以用一个数组创建Series对象
data1 = pd.Series([0.25,0.5,0.75,1])
data2 = np.array([0.25,0.5,0.75,1])
data3 = [0.25,0.5,0.75,1]
print("data1的数据类型是:",type(data1),'---',data1)
print("data2的数据类型是:",type(data2),'---',data2)
print("data3的数据类型是:",type(data3),'---',data3)
data1的数据类型是: <class 'pandas.core.series.Series'> --- 0 0.25
1 0.50
2 0.75
3 1.00
dtype: float64
data2的数据类型是: <class 'numpy.ndarray'> --- [0.25 0.5 0.75 1. ]
data3的数据类型是: <class 'list'> --- [0.25, 0.5, 0.75, 1]
从上面输出结构看,Series将一组数据和一组索引绑定在一起,可用values属性和index属性属性获取. (注意字母大小写和是否为复数格式)
data1.values
array([0.25, 0.5 , 0.75, 1. ])
data1.index
RangeIndex(start=0, stop=4, step=1)
可以通过中括号索引标签获取值
data1[2] # 第3个数值
0.75
data1[1:3] # 第2-3个 ,含左不含右
1 0.50
2 0.75
dtype: float64
data[:3] # 前3个
0 0.25
1 0.50
2 0.75
dtype: float64
Series和NumPy的一维数组基本相同, 本质差别在索引上.
NumPy数组是***隐式定义***的***整数索引***获取数值, 而Pandas的Series对象用一种***显示定义***的索引与数值关联.
显示索引 : 索引不仅仅是整数, 还可以是***任何想要的类型***.
data = pd.Series([0.25,0.5,0.75,1,'nihao'],index=['a','a','c',