@
目錄
pandas進階處理
1. 進階處理-缺失值處理
1.1 如何進行缺失值處理
兩種思路:
如何處理nan
不是缺失值nan,有預設标記的
2. 進階處理-資料離散化
one-hot編碼&啞變量
2.1 什麼是資料的離散化
2.2 為什麼要離散化
2.3 如何實作資料的離散化
3. 進階處理-合并
4. 進階處理-交叉表與透視表
4.1 交叉表與透視表什麼作用
4.2 使用crosstab(交叉表)實作
4.3 pivot_table
5. 進階處理-分組與聚合
5.1 什麼是分組與聚合
5.2 分組與聚合api
6. 綜合案例
缺失值處理
資料離散化
合并
交叉表與透視表
分組與聚合
綜合案例
删除含有缺失值的樣本
替換/插補
判斷資料中是否存在nan
<code>pd.isnull(df)</code>
<code>pd.notnull(df)</code>
<code>df.dropna(inplace=false, axis='rows')</code> 不會修改原資料,需要接受傳回值
<code>df.fillna(value, inplace=false)</code>
<code>values</code> : 替換成的值
<code>inplace</code> :true 會修改原資料 false 不會修改原資料,生成新的對象
替換 <code>?-> np.nan</code>
<code>df.replace(to_replace="?", value=np.nan)</code>
<code>to_replace</code>:替換前的值
<code>value</code>:替換後的值
處理<code>np.nan</code>缺失值的步驟
性别
年齡
a
1
23
b
2
30
c
18
物種
毛發
3
下邊更合理
男
女
狗
豬
老鼠
原始的身高資料:165,174,160,180,159,163,192,184
對資料進行分組
自動分組<code>sr=pd.qcut(data, bins)</code>
- 自定義分組<code>sr=pd.cut(data, bins)</code>
- 對資料進行分組将資料分組一般會與<code>value_counts</code>搭配使用,統計每組的個數
<code>series.value_counts()</code> :統計分組次數
将分組好的結果轉換成one-hot編碼
<code>pd.get_dummies(data, prefix=none)</code>
<code>data</code>: array-like, series, or dataframe
<code>prefix</code>: 分組名字
numpy
np.concatnate((a, b), axis=)
水準拼接
np.hstack()
豎直拼接
np.vstack()
按方向拼接
<code>pd.concat([data1, data2], axis=1)</code>
按照行或列進行合并,axis=0為列索引,axis=1為行索引
按索引拼接
<code>pd.merge</code>實作合并
<code>pd.merge(left, right, how="inner", on=[索引])</code>
找到、探索兩個變量之間的關系
<code>pd.crosstab(value1, value2)</code>
<code>dataframe.groupby(key, as_index=false)</code>
<code>key</code>:分組的列資料,可以多個
案例:不同顔色的不同筆的價格資料