Python之Pandas中Series、DataFrame实践
1. pandas的数据结构Series
1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。
1.2 Series的字符串表现形式为:索引在左边,值在右边。
2. pandas的数据结构DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值的)。
dataframe中的数据是以一个或者多个二位块存放的(而不是列表、字典或者别的一维数据结构)。
3.索引对象
pandas的索引对象负责管理轴标签和其他元素(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。
Index对象是不可修改的。
4. pandas的主要Index对象
Index 最泛化的Index对象,将轴标签表示为一个由Python对象组成的NumPy数组
Int64Index 针对整数的特殊Index
MultiIndex “层次化”索引对象,表示单个轴上的多层索引。可以看做由元数组组成的数组
DatetimeIndex 存储纳秒级时间戳(用NumPy的datetime64类型表示)
PeriodIndex 针对Period数据(时间间隔)的特殊Index
5. 操作Series和DataFrame中的数据的基本手段
5.1 重新索引 reindex
5.2 丢弃指定轴上的项 drop
5.3 索引、选取和过滤(.ix)
5.4 算数运算和数据对齐
DataFrame和Series之间的算数运算默认情况下会将Series的索引项 匹配到DataFrame的列,然后沿着行一直向下广播。(如果希望匹配行且在列上广播,则必须使用算数运算方法)
6. 函数应用和映射
NumPy的ufuncs(元素级数组方法)也可用操作pandas对象
DataFrame中将函数应用到由各列或各行所行成的一维数组上可用apply方法。
7. 排序和排名
要对行或列索引进行排序(按字典顺序),可使用sort_index方法,它将返回一个已排序的新对象;对于DataFrame,则可以根据任意一个轴上的索引进行排序。
8. 汇总和计算描述统计
8.1 相关系数corr与协方差cov
8.2 成员资格isin,用于判断矢量化集合的成员资格,可用于选取Series或DataFrame列数据的子集。
9. 处理缺失数据(Missing data)
9.1 pandas使用浮点值NaN(Not a Number)表示浮点和非浮点数组中的缺失数据。
9.2 NA处理办法
dropna 根据各标签值中是否存在缺失数据对轴标签进行过滤,可通过阀值调节对缺失值的容忍度
fillna 用指定的或插值方法(如ffil或bfill)填充缺失数据
isnull 返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值/NA,该对象的类型与源类型一样
notnull isnull的否定式
10. 层次化索引
层次化索引(hierarchical indexing)是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它是你能以低维度形式处