- Pandas含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具
- Pandas经常和其他工具一同使用,如数值计算工具Numpy和Scipy,分析库的statsmodels和scikit-learn,和数据可视化库matplotlib
- 虽然Pandas采用了大量的Numpy的编码风格,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的,而Numpy更适合处理同一的数值数组数据
- Pandas的主要数据结构:Series和DataFrame
Series
-
Series是一种类似于一维数组的对象,它是由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。
索引在左边,值在右边 -
没有为数据指定索引时,会自动创建一个0到N-1的整数型索引。可以通过Series的Values和index属性获取其数组表示形式和索引对象。
- 还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。
- 如果数据被存放在一个python字典中,也可以直接通过这个字典来创造Series
-
Series对象本身及其索引都有一个name属性,该属性和pandas其他关键功能关系非常密切
- Series的index可以通过赋值的形式直接修改
obj.index = [" ", " ",...]
DataFrame
- DataFrame是一个表格型数据结构,它含有一组有序的列,每列可以是不同的值类型。DataFrame既有行索引,也有列索引
-
创建DataFrame最简单的方法就是直接传入一个由等长列表或Numpy数组构成的字典。
- 如果传入的列在数据中找不到,就会在结果中产生缺失值NaN
-
获取
-
赋值
-
另一种常见的数据形式是嵌套字典,如果嵌套字典传给DataFrame,pandas就会被解释为:外层字典的键作为列,内层键作为行索引
-
也可以给DataFrame设置index和columns的name
- 与python的集合不同,pandas的index可以包含重复的标签
-
index的方法和属性
基本功能
重新索引
-
pandas对象的一个重要方法是reindex,其作用是创建一个新对象,它的数据符合新的索引。
-
对列也可以重新索引
丢弃指定轴上的项
axis=1 即 axis='columns'索引,选取和过滤
-
对于Series的索引
-
对于DataFrame的索引
-
用loc(轴标签)和iloc(整数索引)进行选取
-
还可加入相关的条件
为了更标准,索引的时候最好用上loc或者iloc
算数运算和数据对齐
-
pandas最重要的一个功能是,它可以对不同索引的对象进行算术运算。在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。
将在两个series都有的索引的值相加,其他的索引变为NaN
对于DataFrame,对齐操作会同时发生在行和列上。如果没有公用的行或列标签,结果都会是空。
-
有时,我们希望当一个对象中某个标签在另一个对象中找不到时,填充一个特殊值(比如0)
填充了原本的值
排序
- 根据索引排序:
df.sort_index(axis=1)
,默认axis=0 - 根据值排序:
df.sort_values(by="column_name")
-
ranck()
:为各组分配一个平均排名
相当于把计量资料变为等级资料
汇总
NA值会被自动排除,除非整个切片都是NA,可以通过
skipna = False
禁止该功能一次性产生多个汇总统计
网友评论