處理缺失值
-
缺失值是np.NaN
- 判斷是否NaN缺失
pd.isnull(df).any()
pd.notnull(df).all() - 處理
- 判斷是否NaN缺失
缺失值是其他字符(例如?)
1.先替換成NaN: df.replace('?', np.nan)
2.再按NaN處理缺失值
數據離散化
- 分組
- 自動分組 new_sr = pd.qcut(sr, bins=3)
- 自定義分組 new_sr = pd.cut(sr, bins=[0, 165, 185, 300])
- one-hot編碼
df = pd.get_dummies(new_sr , prefix=)
合并
- 方向合并
pd.concat([df1, df2], axis=0)axis=0豎直合并
axis=1 水平合并 - 索引合并
pd.merge()-
內連接
pd.merge(left, right, how='inner', on=['key1', 'key2']) -
左連接
pd.merge(left, right, how='left', on=['key1', 'key2'])
-
-
右連接
pd.merge(left, right, how='right', on=['key1', 'key2']) -
外連接
pd.merge(left, right, how='outer', on=['key1', 'key2'])
交叉表與透視表
交叉表
pd.crosstab()透視表
pd.pivot_table()
分組與聚合
- 分組
df.groupby()