Python入門 —— Pandas Day4【轉載】
Pandas被稱為“Python Data Analysis Li”,它:
是基於Numpy的一種工具庫;
提供了大量能使我們快速便捷處理資料的函式和方法;
最初被作為金融資料分析根據被開發出來;
集成了時間序列功能;
對缺失值的靈活處理能力;
…
Pandas有兩種主要的資料結構:Series和Dataframe,前者是一維的,後者是多維的(表格型)。
一、 Series
Series由一組資料和對應的索引組成,看個例子:
有點像第1天學的字典。
複習一下字典:
Series在操作上也像字典,對比一下a(字典)和b(Series):
實際上,字典也確實可以直接變身成為Series!比如下面的字典a,儲存了每個地區的平均工資,將其變為Series:
二、DataFrame
1. 資料結構
DataFrame是一個表格型的資料結構。
下面的這組資料,儲存了2015年中國人口前十的城市,以及它們擁有的人口。
那麼怎麼才能生成這樣一張表呢?最常用的方法,是用字典生成:
2. 基本操作
(1)改變索引名
剛剛的城市人口資料,我們有10個城市,索引是0~9,我們不想用這麼單調的數字來做索引,想用每個城市的簡稱來表示,和Series一樣,可以用index=來指定索引
(因為Python自帶的shell中,結果的顯示沒有ipython notebook美觀,所以下面的例子我用ipython notebook的結果來展示)
(2)增加一列
如何給DataFrame增加一列?還是以剛剛城市人口的資料pop_DF為例,我們來增加一列,給每個城市打上“China”的標記:
有時候增加的這一列不一定全,可能有缺失,比如再給每個城市增加一列歸屬省份,但是本人地理差,只知道廣州屬於廣東,蘇州屬於江蘇,那麼我可以這麼加:
總結:
- 可以用Series來按照索引的匹配來增加一列;
- 缺失的地方會用NaN來表示。
(3)排序
作為統計師,排序是常見的,我想到的以後可能用到的至少有這幾種:
人為給定順序;
按照索引來自動排序:升序、降序;
按照某一變數來自動排序;
人為給定順序:
用reindex函式,可以人為的給定順序,想讓誰在前面誰就在前面。
比如,我們按照首字母來人為給定如下順序
這時我有一個問題了:要是reindex中出現了不存在的索引怎麼辦?
比如上例中pop_DF2的“Chu”,結果其所對應的全部變數都是缺失的。
按照索引自動排序:
可以用 .sort_index() 來讓資料按照索引自動排序。
在上例中,我們多了一個索引為“Chu”的空資料,並且在Bao的前面,我們再用sort_index()讓它按照字母順序自動重排一下。
這是預設的升序排列,也可以降序,只要指定ascending=False就可以:
pop_DF2.sort_index(ascending=False)
按照變數自動排序:
我們可以用 .sort_values( by = ‘’ ) 來指定某一個變數來排序:
我們回到pop_DF這個資料:
(4)刪除一列或一行
如何刪掉一行?
用 .drop() 就可以刪掉指定的索引行,
比如我們想刪掉pop_DF中,人口大於2000(萬)的城市,也就是重慶和上海,對於的索引(也就是簡稱)為:Yu和Hu
如何刪掉一列?
用 .drop() ,指定一下要刪的列變數,並且加一句 axis=1 。
Pandas資料的DataFrame資料格式的魅力:
列表生成DataFrame: