iT邦幫忙

2022 iThome 鐵人賽

DAY 28
1
AI & Data

先別急著學 Python | The Secret to Success in Python系列 第 28

Ɖ28-布朗尼/ Pandas 的索引探討與應用

  • 分享至 

  • xImage
  •  

索引過程

我們介紹過DataFrame表現得既像二維數組又像由共同的索引值組成的Series對象的字典。這能幫助你學習如何在DataFrame裡面進行數據選擇。

The Pandas Index Object

前面內容介紹的Series和DataFrame對像都包含著一個顯式定義的索引index對象,它的作用就是讓你快速訪問和修改數據。

基本索引功能

indA.size                           # returns the size
indA.shape                          # returns the shape
indA.ndim                           # returns the number of dimensions in the data
indA.dtype                          # returns the data type
indA.nbytes                         # returns the number of bytes in the data
indA.empty                          # checks if the series is empty or not
indA.hasnans                        # checks if the series has any nan value 

indA.intersection(indB)             #indA & indB  # 交集
indA.union(indB)                    #indA | indB  # 聯集
indA.symmetric_difference(indB)     #indA ^ indB  # 互斥差集

https://ithelp.ithome.com.tw/upload/images/20221011/20140740RBDqhQjHws.png

UFuncs: Index Alignment 索引對齊

對於兩個Series或DataFrame進行二元運算操作,Pandas會在運算過程中會自動將兩個數據集的索引進行對齊操作。這對於我們處理不完整的數據集的情況下非常方便,下面我們來看一些例子,假設我們從兩個不同的數據源分別獲得美國的州大小和人口。

area = pd.Series({'Alaska': 1723337, 'Texas': 695662,'California': 423967}, name='area')
population = pd.Series({'California': 38332521, 'Texas': 26448193,'New York': 19651127}, name='population')

https://ithelp.ithome.com.tw/upload/images/20221012/20140740vW3PFS5xXv.png

我可以利用 union 來尋找其聯集,利用這個方式可以找出索引

area.index.union(population.index)    # union 

https://ithelp.ithome.com.tw/upload/images/20221012/20140740tvM93fWNJP.png

UFuncs Function

兩個任意輸入數據集中對應的另一個數據集不存在的元素都會被設置為 NaN(非數字的縮寫),也就是Pandas標示缺失數據的方法:如果填充成NaN值不是你需要的結果,你可以使用相應的ufunc函數來計算,然後在函數中設置相應的填充值參數。例如,調用A.add(B)等同於調用A + B,但是可以提供額外的參數來設置用來缺失的替換值:

area + population

https://ithelp.ithome.com.tw/upload/images/20221012/20140740LYOKt1f8tD.png

area.add(population, fill_value=0)

https://ithelp.ithome.com.tw/upload/images/20221012/20140740VEkXo9TYrc.png

額外補充

下面列出了Python的運算操作及其對應的Pandas方法:

https://ithelp.ithome.com.tw/upload/images/20221012/20140740XDfPQVZwGJ.png

謝謝大家的觀看,但歷史的痕跡會持續下去

今年沒組團,每一筆一字矢志不渝的獻身精神都是為歷史書寫下新頁,有空的話可以走走逛逛我們去年寫的文章。


Hi'Jerry均

Jerry 據說是個僅佔人口的 4% 人口的 INFP 理想主義者,總是從最壞的生活中尋找最好的一面,想方設法讓世界更好,內心的火焰和熱情可以光芒四射,畢業後把人生暫停了半年,緩下腳步的同時找了份跨領域工作。偶而散步、愛跟小動物玩耍。曾立過很多志,最近是希望當一個有夢想的人。

謝謝你的時間「訂閱,追蹤和留言」都是陪伴我走過 30 天鐵人賽的精神糧食。


上一篇
Ɖ27-布朗尼/ Pandas 的數據結構 Series 與 Datafram
下一篇
Ɖ29-布朗尼/ Pandas 的缺失值處理與應用
系列文
先別急著學 Python | The Secret to Success in Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言