第八章:繪圖和可視化

說明:本文章爲Python數據處理學習日誌,記錄內容爲實現書本內容時遇到的錯誤以及一些與書本不一致的地方,一些簡單操作則不再贅述。日誌主要內容來自書本《利用Python進行數據分析》,Wes McKinney著,機械工業出版社。

這篇博文主要是爲了補全python處理數據系列,所以寫的比較簡略,並沒有太多代碼,主要說明一下這一章可能會遇到的幾個問題。

1、P242的三個繪圖函數

Rectangle的三個參數分別爲:左下頂點座標,長,寬;
Circle的兩個參數爲:圓心,半徑;
Polygon的三個參數爲:三個頂點的座標。
alpha爲透明度。
繪出來的圖看起來像橢圓,是因爲xy軸比例不一樣,調整窗口大小就可以看到確實是圓。

2、P249

tips = pd.read_csv('tips.csv')

party_counts = pd.crosstab(tips.day,tips.size)

party_counts
Out[13]: 
col_0  1708
day        
Fri      19
Sat      87
Sun      76
Thur     62

這個結果和書上的不一樣,原因在於列名size

tips.day[:5]
Out[17]: 
0    Sun
1    Sun
2    Sun
3    Sun
4    Sun
Name: day, dtype: object

tips.size
Out[18]: 1708

size是tips的自帶屬性,於是其不能作爲列名顯示其內容,就會出現上述的結果。任意將size改成people_size或者其他名字均可(在csv直接改即可),就可得到書本上的結果。後續也要注意此處的名字有所修改。

 tips = pd.read_csv('tips.csv')

party_counts = pd.crosstab(tips.day,tips.people_size)

party_counts
Out[21]: 
people_size  1   2   3   4  5  6
day                             
Fri          1  16   1   1  0  0
Sat          2  53  18  13  1  0
Sun          0  39  15  18  3  1
Thur         1  48   4   5  1  3

3、P256三個函數

下面定義的三個函數是幹什麼的,我們舉例說明。
先看data中的一條數據:

data[1:2]
Out[28]: 
   Serial                  INCIDENT TITLE     INCIDENT DATE LOCATION  \
1    4051  Food-Aid sent to Fondwa, Haiti  28/06/2010 23:06   fondwa   

                                         DESCRIPTION  \
1  Please help food-aid.org deliver more food to ...   

                                            CATEGORY   LATITUDE  LONGITUDE  \
1  1. Urgences | Emergency, 2. Urgences logistiqu...  50.226029   5.729886   

  APPROVED VERIFIED  
1       NO       NO  

data[1:2].CATEGORY
Out[29]: 
1    1. Urgences | Emergency, 2. Urgences logistiqu...
Name: CATEGORY, dtype: object

在csv中查看該條數據的CATEGORY爲:

'''|前是非英文名,之後是英文名'''
1. Urgences | Emergency, 2. Urgences logistiques | Vital Lines,

首先,第一個函數是將每條CATEGORY根據“,”分割,並存入數組返回。
上面一條記錄分割後的結果爲:

['1. Urgences | Emergency', 
 '2. Urgences logistiques | Vital Lines']

第二個函數接受第一個函數的結果,將所有結果剔除相同的,得到一個不重複的CATEGORY集合,目的是爲了得到所有出現在表格中的分類。

第三個函數是爲了得到分類的英語名,上述記錄會被分割爲:

['1', 'Emergency']
['2', 'Vital Lines']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章