Python数据分析基础(三)——pandas

来源:互联网 发布:网络社会组织 编辑:程序博客网 时间:2024/06/03 16:01

pandas是基于NumPy构建的,让以NumPy为中心的应用变得更加简单。

pandas的数据:

  • Series是一种类似于一维数组的对象,由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。

  • DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。


可以输入给DataFrame构造器的数据

类型说明二维ndarray数据矩阵,还可以传入行标和列标由数组、列标或元组组成的字典每个序列会变成DataFrame的一列,所有序列的长度必须相同NumPy的结构化/记录数组类似于“由数组组成的字典”由Series组成的字典每个Series会成为一列。如果没有显示指定索引,则各Series的索引会被合并成结果的行索引由字典组成的字典各内层字典会成为一列。键会被合并成结果的行索引。字典或Series的列表各项将会成为DataFrame的一行。字典键或Series索引的并集将会成为DataFrame的列标由列标或元组组成的列表类似于“二维ndarray”另一个DataFrame该DataFrame的索引将会被沿用,除非显示指定了其他索引。NumPy的MaskedArray类似于“二维ndarray”,只是掩码值在结果DataFrame会变成NA/缺失值。


pandas中主要的Index对象

类说明Index最泛化的Index对象,将轴标签表示为一个由Python对象组成的NumPy数组Int64Index针对整数的特殊IndexMultiIndex“层次化”的索引对象,表示单个轴上的多层次索引。可以看做由元组组成的数组。DatetimeIndex存储纳秒级时间戳(用NumPy的datetime64类型表示)PeriodIndex针对Period数据(时间间隔)的特殊Index


Index的方法和属性

方法说明append连接另一个Index对象,产生一个新的Indexdiff计算差集,并得到一个Indexintersection计算交集union计算并集isin计算一个指示各值是否包含在参数集合中的布尔型数组delete删除索引i处的元素,并得到新的Indexdrop删除传入的值,并得到新的Indexinsert将元素插入到索引i处,并得到新的Indexis_monotonic当各元素均大于等于前一个元素时,返回Trueis_unique当Index没有重复值时,返回Trueunique计算Index中唯一值得数组


reindex的method选项

参数说明ffill或pad前向填充(或搬运)值bfill或backfill后向填充(或搬运)值


reindex函数的参数

参数说明index用作索引的新序列。Index会被完全使用,就像没有任何复制一样。method插值(填充)方式。fill_value在重新索引的过程中,需要引入缺失值时使用的替代值。limit前向或后向填充时的最大填充量level在MultiIndex的指定级别上匹配简单索引,否则选取其子集copy默认为True,无论如何都复制;如果为False,则新旧相等就不复制。


DataFrame的索引选项

类型说明obj[val]选取DataFrame的单个列或一组列。在一些特殊情况下会比较便利:布尔型数组(过滤行)、切片(行切片)、布尔型DataFrame(根据条件设置值)obj.ix[val]选取DataFrame的单个行或一组行obj.ix[:, val]选取单个列或列子集obj.ix[val1, val2]同时选取行和列reindex方法将一个或多个轴匹配到新索引xs方法根据标签选取单行或单列,并返回一个Seriesicol、irow方法根据整数位置选取单列或单行,并返回一个Seriesget_value、set_value方法根据行标签和列标签选取单个值


排名时用于破坏平级关系的method选项

method说明average默认:在相等分组中,为各个值分配平均排名min使用整个分组的最小排名max使用整个分组的最大排名first按值在原始数据中的出现顺序分配排名


描述和汇总统计

方法说明count非NA值的数量describe针对Series或各DataFrame列计算汇总统计min、max计算最小值和最大值argmin、argmax计算能够获取到最小值和最大值的索引位置(整数)idxmin、idxmax计算能够获取到最小值和最大值的索引值quantile计算样本的分位数(0到1)sum值的总和mean值的平均数median值的算术中位数(%50分位数)mad根据平均值计算平均绝对离差var样本值的方差std样本值的标注差skew样本值的偏度(三阶矩)kurt样本值的峰度(四阶矩)cumsum样本值的累积和cummin、cummax样本值的累计最大值和累计最小值cumprod样本值的累计积diff计算一阶差分pct_change计算百分数变化


NA处理方法

方法说明dropna根据各标签的值中是否存在缺失数据对轴标签进行过滤,可通过阈值调节对缺失值的容忍度fillna用指定值或插值方法(如ffill或bfill)填充缺失数据isnull返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值,该对象类型与源类型一样notnullisnull的否定式


参考文献:

利用Python进行数据分析.    Wes McKinney.    唐学韬译