1. 程式人生 > >python資料分析處理庫-Pandas之Series結構及Series常用操作方法

python資料分析處理庫-Pandas之Series結構及Series常用操作方法

我上上篇部落格說過:Pandas資料結構為DataFrame,裡面可以同時是int、float、object(string型別時)、datatime、bool資料型別。而構成DataFrame結構的每一列或每一行是Series結構,令人吃驚的是Series裡面的結構是ndarray (numpy中的) 結構

Pandas之Series常用操作方法1

import pandas as pd
fandango = pd.read_csv('fandango_score_comparison.csv') #讀檔案
series_film = fandango['FILM'] #查詢該檔案的名為"FILM"的列
print(type(series_film)) #看結果列印型別是Series型別
print(series_film[0:5])
series_rt = fandango['RottenTomatoes']
print(series_rt[0:5])

結果是:
<class 'pandas.core.series.Series'> #可以看到型別是Series型別
0    Avengers: Age of Ultron (2015)
1                 Cinderella (2015)
2                    Ant-Man (2015)
3            Do You Believe? (2015)
4     Hot Tub Time Machine 2 (2015) #列印了"FILM"列的第0到4的資料
Name: FILM, dtype: object
0    74
1    85
2    80
3    18
4    14  #列印了"RottenTomatoes"列的第0到4的資料
Name: RottenTomatoes, dtype: int64

Pandas之Series常用操作方法2

from pandas import Series
film_names = series_film.values #檢視該Series的value
print(type(film_names)) #從結果看出:Series的value是ndarray結構
rt_scores = series_rt.values
series_custom = Series(rt_scores, index=film_names) #以電影名為索引構造Series,前一個引數是電影評分
print(series_custom[['Minions (2015)','Leviathan (2014)']]) #以電影名為索引搜尋其評分
print(series_custom[5:10])  #列印此Series中第5到10的資料

結果是:
<class 'numpy.ndarray'> #可看出,Series裡面的結構是ndarray結構
Minions (2015)      54
Leviathan (2014)    99  #以電影名為索引搜尋到的其評分
dtype: int64
The Water Diviner (2015)        63
Irrational Man (2015)           42
Top Five (2014)                 86
Shaun the Sheep Movie (2015)    99
Love & Mercy (2015)             89 #此Series中第5到10的資料

-----對Series排序
series_custom.sort_index() #按索引進行排序
series_custom.sort_value() #按值進行排序

-----設定索引
fandango_films = fandango.set_index('FILM', drop=False) #將某一列設定成索引,此時就有2個索引了,另一個是預設的,fandango是之前讀取檔案獲得的物件

-----設定索引之後,可以用設定索引的列的元素進行資料檢視(切片方式)
fandango_films["設定索引的列的元素1":"設定索引的列的元素2"] #檢視元素1到元素2之間的所有元素

-----自定義函式方式對Series操作
a = b[["列名1", "列名2"]]  #a和b都是Series
a.apply(lambda x: np.std(x), axis=1)  #通過列1和列2對a物件求標準差

需要fandango_score_comparison.csv檔案把程式碼走一遍的,評論聯絡我