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