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() |