pandas基本功能(续2)

函数应用和映射

NumPy的ufuncc(元素级数组方法)也可用于操作pandas对象:


另一个常见的操作是,将函数应用到由各列或行所形成的一维数组上。DataFrame的apply方法即可实现此功能:


许多最为常见的数组统计功能都能被实现成DataFrame的方法(如sum和mean),因此无需使用apply方法。
除标量值外,传递给apply的函数换可以返回由多个值组成的Series:


此外,元素级的Python函数也是可以用的。下面是得到frame中各个浮点值得格式化字符串,使用applymap即可:


之所以叫做applymap,是因为Series有一个用于应用元素级函数的map方法:


排序和排名

根据条件对数据集排序(sorting)也是一种重要的内置运算。要对行或列索引进行排序(按字典顺序),可使用sort_index方法,它将返回一个已排序的新对象:


面对于DataFrame,则可以根据任意一个轴上的索引进行排序:


数据默认是按升序排序的,但也可以降序排序:


在DataFrame中,可以对一个多个列中的值进行排序。将一个或多个列的名字传递给by选项即可达到该目的:


要根据多个列进行排序,传入名称的列表即可:


排序(ranking)跟排序关系密切,且它会增设一个排名值(从1开始,一直到数组中有效数据的数量)。它跟numpy.argsort产生的间接排序索引差不多,只不过它可以根据某种规则破坏平级关系。接下来介绍Series和DataFrame的rank方法。默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系:


也可以根据值在原数据中出现的顺序给出排名:
obj.rank(method='first')
也可以进行降序进行排名:
obj.rank(ascending=False,method='max')


DataFrame可以在行或列上计算排名:


排名时用于破坏平级关系的method选项
method说明
average在相等分组中,为各个值分配平均排名
min使用整个分组的最小排名
max使用整个分组的最大排名
first按值在原始数据中的出现顺序分配排名
带有重复值的轴索引

虽然许多pandas函数都要求标签统一,但这并不是强制性的。

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

对于带有重复值的索引,数据选取的行为将会有些不同。如果某个索引值对应多个值,则返回一个Series,而对应单个值的,则返回一个标量值。

对DataFrame的行进行索引时也是如此:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值