天天看點

python--Pandas進階處理

@

目錄

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. 綜合案例

python--Pandas進階處理

缺失值處理

資料離散化

合并

交叉表與透視表

分組與聚合

綜合案例

删除含有缺失值的樣本

替換/插補

判斷資料中是否存在nan

<code>pd.isnull(df)</code>

<code>pd.notnull(df)</code>

python--Pandas進階處理

<code>df.dropna(inplace=false, axis='rows')</code> 不會修改原資料,需要接受傳回值

<code>df.fillna(value, inplace=false)</code>

<code>values</code> : 替換成的值

<code>inplace</code> :true 會修改原資料 false 不會修改原資料,生成新的對象

python--Pandas進階處理

替換 <code>?-&gt; np.nan</code>

<code>df.replace(to_replace="?", value=np.nan)</code>

<code>to_replace</code>:替換前的值

<code>value</code>:替換後的值

處理<code>np.nan</code>缺失值的步驟

python--Pandas進階處理

性别

年齡

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>: 分組名字

python--Pandas進階處理
python--Pandas進階處理

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>

python--Pandas進階處理
python--Pandas進階處理

找到、探索兩個變量之間的關系

<code>pd.crosstab(value1, value2)</code>

python--Pandas進階處理

<code>dataframe.groupby(key, as_index=false)</code>

<code>key</code>:分組的列資料,可以多個

案例:不同顔色的不同筆的價格資料

python--Pandas進階處理
python--Pandas進階處理