Pandas三大结构:
- Series:带索引的一维数组
- Series = value + index
- Series可以通过list、dict创建
- 操作:
- 下标操作
- 切片操作
- 定位器
- loc:只使用显示索引
- iloc:只使用隐示索引
- ix:前两种索引的混合模式,主要用在DataFrame中,不推荐
- DataFrame:带索引的二维数组
- 可以看作一个excel表,即具有行号+列名的二维数据结构
- 创建:
- 通过单个Series创建
- 通过字典列表创建
- 通过Series对象字典创建
- 通过Numpy二维数组创建
- 通过Numpy结构化数组创建
- Index:专用来描述索引的数据结构
- 可以把Index看做不可变的数组(tuple)或者有序的集合
- Index作为有序集合操作主要是为了进行一些基于集合的操作,比如集合的交差并补操作
- &:交集
- |:并集
- ^:异或
Pandas通用运算:
- Pandas运算基于Numpy,但多了些Pandas的内容
- Pandas的运算结果保留索引和列标签
- 使用通用函数的时候会自动对齐索引
缺失值的表示:
- None
- 在python中一般用来表示一个None的对象,是一个对象的默认缺失值。
- NaN
- 一般表示数值类的缺失值,在Nnumpy中使用numpy.nan来表示
缺失值的特征:
- 不同语言/工具可能对缺失值的默认处理方式也不同
- Nan具有传染性
- None和Nan可以互换,或者可以认为这两个值在Pandas中等价
DataFrame和Series的运算:DataFrame和Series运算默认采用的是行运算,即一行一行的运算,如果想要按列运算,需要使用axis参数。
缺失值的相关操作:
- pd.isnull():是缺失值,返回为真
- pd.notnull():不是缺失值,返回为真
- pd.dropna():如果有缺失值,则删除
- axis:控制剔除的行或者列
- thresh:如果有效数据数量低于这个值,则对应的行或者列将被剔除。
- pd.fillna():填充空值为参数
层级索引:一般用于将高纬度数据和类似一维Series或者二维DataFrame对象的转化
- 索引是为了定位从而使用数据
- 切片和定位可以类比列表的下标和切片学习
- 对多级索引使用切片的前提是:索引为有序索引