python数据分析pandas包入门学习(二)基本功能

来源:互联网 发布:mysql right函数 编辑:程序博客网 时间:2024/05/18 03:30

本文参考《利用Python进行数据分析》的第五章 pandas入门

2基本功能
介绍操作Series和DataFrame中的数据的基本手段。
重新索引reindex
当调用Series的reindex将会根据新索引进行重排;当某个索引值当前不存在,就引入缺失值;fill_value可以给缺失值赋值。

method选项:



对于DataFrame,reindex可以修改索引(行)、列,或者两个都修改。如果只传入一个序列,则会修改索引(行):

也可以使用ix()进行重新索引,比reindex更简洁:


丢弃指定轴上的项drop()


索引、选取和过滤
两种方式进行索引:普通的python切片&利用标签切片
对Series进行索引:

注意:利用标签切片运算与普通的Python切片运算不同,其末端是包含的:

对DataFrame进行索引就是获取一个或多个列:

通过切片或布尔型数组选取行:

通过布尔型DataFrame进行索引:

也可以通过ix从DataFrame中选取行和列的子集:

可以看到,pandas对象中的数据的选取和重排方式很多。下表简单总结了针对DataFrame数据的选取和重排方式:

算术运算和数据对齐
pandas最重要的一个功能是,可以对不同索引的对象进行算术运算。

对DataFrame,同时发生在行和列上:

在算术方法中填充值
当索引无法配对时填充一个特殊值(如0)


类似的,在对Series和DataFrame重新索引时,也可以指定一个填充值:

DataFrame和Series之间的运算
先看一个二维数组与其某行只差:


DataFrame和Series之间的运算也差不多:

如果某个索引值在DataFrame的列或Series的索引中找不到,则两个对象会被重新索引成并集,并在没有匹配的索引中插入NaN值

DataFrame列上的操作,加上axis=0:


函数应用和映射
numpy的nfuncs(元素级数组方法)也可用于操作pandas对象:

一种常见的操作是,将函数应用到各列或行,得到一维数组,可通过apply()方法实现:

除标量外,传递给apply的函数还可以返回由多个值组成的Series:

此外,元素级的PYTHON函数可是可用的,例如你想把frame中各个浮点值的格式化字符串,可使用
applymap()方法:

应用于Series时则是map()方法:

排序和排名
sort_index():对行或列索引进行排序:
对于Series
对于DataFrame

对于DataFrame

默认为升序,通过如下设置,可降序排序:

sort_index(by=):根据一个或多个列中的值进行排序:

order():Series按值排序,NaN默认被放到末尾

rank():排名,增设一个排名值,从1开始
默认情况下,并列的会分配一个平均值作为排名:

也可根据值在元数据中出现的顺序给出排名:


使用降序,则加上ascending=False

method选项:

对于DataFrame,则由axis来控制对行排名或列排名:

带有重复值的轴索引
虽然许多Pandas的函数(如reindex)都要求标签唯一,但也有索引不唯一的情况:

索引的is_unique属性可以告诉你索引值是否唯一:

数据选取时,索引对应多个值,则返回一个Series;对应单个则返回一个标量:


对于DataFrame也一样:


0 0
原创粉丝点击