Table of Contents:
- 轉換DataFrame資料型態: astype
- 處理空值資料: isnull/notnull/dropna/fillna
- MultiIndex與DataFrame的轉換: stack/unstack
DataFrame轉換資料型態
DataFrame.astype(資料型態)
1 | # 先建立一個DataFrame |

1 | demo.astype('float') |

處理空值資料
開始前,先比較None/NaN兩者資料型態的差異
1 | type(None) # NoneType |
None是一種object,而NaN則是浮點數- 當使用
sum(),min(),count()…等函式時,或資料內含有None就會出錯- 為了表達這個資料缺失型態,
NaN因而誕生- 當使用
NaN進行前述運算時,需使用np.nansum(),np.nanmin()…
Pandas是擅長用來處理資料的套件,所以在處理資料的過程中肯定會遇到這些問題,因此誕生了isnull(),notnull(),dropna(),fillna()…等等函式,以下分別介紹這些常見的函式~
首先先建立一個含有缺失值的DataFrame
1 | demo = pd.DataFrame({'a':[1,2,np.nan],'b':[2,None,6]}) |

NaN,None在DataFrame都視為是一種缺失值,所以都以NaN表示
1. isnull()
DataFrame.isnull()
檢查是否空值
1 | demo.isnull() |

2. notnull()
DataFrame.notnull()
檢查不是空值
1 | demo.notnull() |

3. dropna():
DataFrame.dropna()
刪除空值,會直接刪除整欄或整列
1 | demo.dropna() |

4. fillna():
DataFrame.fillna( 取代的值 )
自定義要填入空值什麼值
1 | demo.fillna('色即是空') |

MultiIndex與DataFrame的轉換
| 函式 | 轉換過程 |
|---|---|
| stack() | DataFrame->MultiIndex |
| unstack() | MultiIndex->DataFrame |
建立一個DataFrame來示範
1 | books = pd.Series({'a':'beam','b':'column','c':'hinge'}) |

DataFrame.stack()
1 | civil_multiIndex = civil.stack() |
multiIndex.unstack()
1 | civil_multiIndex.unstack() |
