利用Python进行数据分析(六)之pandas基本功能续

来源:互联网 发布:网站快速排名软件 编辑:程序博客网 时间:2024/05/29 15:05

排序和排名

按索引排序

obj.sort_index() frame.sort_index()
DataFrame也可以指明具体的哪个轴frame.sort_index(axis=1)则为按照columns索引排序。

In[170]:obj.sort_index()0ut[170]a  1b  2c  3d  0
import numpy as npfrom pandas import Series,DataFrameIn[171]:frame=DataFrame(np.arange(8).reshape((2,4)),index=['three',‘one'],columns=['d\",‘a','b','c])#0-7 2行四列 还记得把~In [172]:frame.sort_index()        In[173]:frame.sort_index(axis=1)      d  a  b  c                                            a  b  c  done   4  5  6  7                                     three  1  2  3  0three 0  1  2  3                                     one    5  6  7  4

默认为升序,降序则添加参数ascending=False

按值排序

缺失值默认放末尾。
obj.sort_values()
(作者写的是obj.order()但是最新的pandas已经没有使用了)
frame.sort_values(by=[‘a’,’b’])
(同样作者写的是frame.sort_index(by=[‘a’,’b’])但是最新的pandas已经没有使用了,并且会提示你使用sort_values())

frame=DataFrame({'b':[4,7,-3,2],'a':[0,1,0,1]})    a   b0   0   41   1   72   0   -33   1   2frame.sort_values(by=['a','b'])    a   b2   0   -30   0   43   1   21   1   7

排名

顾名思义 排名嘛,按照值的出现顺序从1开始排名,有相同的时取平均数比如45相同则4.5,678相同则均为7这样的形式。

In [183]:obj=Series([7,-5,7,4,2,0,4,7])In [184]:obj.rank()0ut[184]:0    7.01    1.02    7.03    4.54    3.05    2.06    4.57    7.0dtype: float64

当然,你可能排名的时候只是想显示12345连续的,相同的时候按照他的出现顺序,则可以使用method=’first’。可选min,max即分别为相同值的最小顺序或者最大顺序,’average’默认:在相等分组中,为各个值分配平均排名。

In [185]:obj.rank(method='first')out[185]:0    6.01    1.02    7.03    4.04    3.05    2.06    5.07    8.0dtype: float64

降序只要添加参数ascending=False。

带有重复值的轴索引

什么意思呢,就是具有相同的索引,这个也是允许存在的,

obj=Series(range(5),index=['a','a','b','b','c'])#查看索引是否唯一obj.index.is_uniqueout:False#取值对应多个时,返回一个Seriesobj['a']out:a    0        a    1dtype: int32#DataFrame 取值也一样df=DataFrame(np.random.randn(4,3),index=['a','a','b','b'])df.ix['b']0ut[197]:          0                1                2b  1.669025  -0.438570  -0.539741b  0.476985  3.248944  -1.021228

总结

pandas的基本功能通过这两节就看完了,主要介绍的是Series和Dataframe两种数据结构的重建索引reindex,通过drop来删除某些索引,obj[‘b’,’c’]选取时bc索引是都包含的,DataFrame的行上标签索引通过ix来实现,不用时选择出来的是列!不同索引的pandas之间进行算术运算,以及对其函数级操作,这章节我们对其排序排名,以及带过的描述了下有重复索引的时候。总的来说,基本的简单使用在这两节都有描述,可以根据我上面描述的回顾一下。不清楚再翻回去看看~

阅读全文
0 0