python数据分析(八) python pandas--series和dataframe的方法,排序,统计


排序

根据条件对结果进行排序,是pandas当中的一个重要方法,pandas提供了两种排序方式,根据index值,或是根据其中的value进行排序

Series

In [192]: obj
Out[192]:
d    7
a    1
b    2
c    3
e    9
f    4
dtype: int64

In [193]: obj.sort_index()
Out[193]:
a    1
b    2
c    3
d    7
e    9
f    4
dtype: int64

In [194]: obj.sort_values()
Out[194]:
a    1
b    2
c    3
f    4
d    7
e    9
dtype: int64

Dataframe

dataframe作为二维数据结构在排序时,可根据行或者列进行排序,传入axis参数,默认是根据axis=0进行排序

sort_index

In [215]: frame
Out[215]:
       a  b  d  c
three  0  1  4  7
one    2  1  4  3

In [216]: frame.sort_index()
Out[216]:
       a  b  d  c
one    2  1  4  3
three  0  1  4  7

In [217]: frame.sort_index(axis=1)
Out[217]:
       a  b  c  d
three  0  1  7  4
one    2  1  3  4

sort_values

dataframe也可以根据值进行排序,但是dataframe当中的行与列一般都是多行或者多列,所以需要通过by参数指定具体的列名或者行名

In [219]: frame.sort_values(by='one',axis=1)
Out[219]:
       b  a  c  d
three  1  0  7  4
one    1  2  3  4

In [220]: frame.sort_values(by='c')
Out[220]:
       a  b  d  c
one    2  1  4  3
three  0  1  4  7

描述和统计方法

pandas提供了多种统计方法,如同

 

 

 

In [227]: frame.sum()
Out[227]:
a     2
b     2
d     8
c    10
dtype: int64

In [228]: frame.count()
Out[228]:
a    2
b    2
d    2
c    2
dtype: int64

In [229]: frame.sum(axis=1)
Out[229]:
three    12
one      10
dtype: int64

In [230]: frame.var()
Out[230]:
a    2.0
b    0.0
d    0.0
c    8.0
dtype: float64

其中的describe方法,能够一次性产生多个类型的统计信息,用以描述一个数据

In [231]: frame.describe()
Out[231]:
              a    b    d         c
count  2.000000  2.0  2.0  2.000000
mean   1.000000  1.0  4.0  5.000000
std    1.414214  0.0  0.0  2.828427
min    0.000000  1.0  4.0  3.000000
25%    0.500000  1.0  4.0  4.000000
50%    1.000000  1.0  4.0  5.000000
75%    1.500000  1.0  4.0  6.000000
max    2.000000  1.0  4.0  7.000000

唯一值,值计数以及成员资格

之前我们介绍的方法,都是可以用于dataframe以及series的,但是有一些方法是仅series拥有这些方法

unique

unique方法,用于获取series当中的唯一值,类似于python当中的set(list_obj)操作,去除其中的重复值,返还一个只含有唯一值的数组。

In [238]: frame
Out[238]:
       a  b  d  c
three  0  1  4  7
one    2  1  4  3

In [239]: frame.d.unique()
Out[239]: array([4], dtype=int64)

In [240]: frame.c.unique()
Out[240]: array([7, 3], dtype=int64)

value_counts

记录series各个值出现的次数

In [242]: obj = pd.Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])

In [243]: obj
Out[243]:
0    c
1    a
2    d
3    a
4    a
5    b
6    b
7    c
8    c
dtype: object

In [244]: obj.value_counts()
Out[244]:
c    3
a    3
b    2
d    1
dtype: int64

is_in

判断series的成员资格,返还一个布尔数组,常用于过滤series和dataframe的数据

In [249]: obj
Out[249]:
0    c
1    a
2    d
3    a
4    a
5    b
6    b
7    c
8    c
dtype: object

In [250]: obj.isin(['a','c'])
Out[250]:
0     True
1     True
2    False
3     True
4     True
5    False
6    False
7     True
8     True
dtype: bool

In [251]: obj[obj.isin(['a','c'])]
Out[251]:
0    c
1    a
3    a
4    a
7    c
8    c
dtype: object


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM