pandas第四次打卡

2021-10-05 14:10:11 字數 2769 閱讀 7651

第4章 變形

import numpy as np

import pandas as pd

df = pd.read_csv(

'../data/table.csv'

)df.head(

)

一、透視表

1、pivot

一般狀態下,資料在dataframe會以壓縮(stacked)狀態存放,例如上面的gender,兩個類別被疊在一列中,pivot函式可將某一列作為新的cols:

df.pivot(index=

'id'

,columns=

'gender'

,values=

'height'

).head(

)

pivot_table

%timeit df.pivot(index=

'id'

,columns=

'gender'

,values=

'height'

)%timeit pd.pivot_table(df,index=

'id'

,columns=

'gender'

,values=

'height'

)

crosstab(交叉表)

交叉表是一種特殊的透視表,典型的用途如分組統計,如現在想要統計關於街道和性別分組的頻數:

pd.crosstab(index=df[

'address'

],columns=df[

'gender'

])

二、其他變形方法

melt

melt函式可以認為是pivot函式的逆操作,將unstacked狀態的資料,壓縮成stacked,使「寬」的dataframe變「窄」

df_m = df[

['id'

,'gender'

,'math']]

df_m.head(

)df.pivot(index=

'id'

,columns=

'gender'

,values=

'math'

).head(

)

pivoted = df.pivot(index=

'id'

,columns=

'gender'

,values=

'math'

)result = pivoted.reset_index(

).melt(id_vars=

['id'

],value_vars=

['f'

,'m'

],value_name=

'math'

)\ .dropna(

).set_index(

'id'

).sort_index(

)#檢驗是否與展開前的df相同,可以分別將這些鏈式方法的中間步驟展開,看看是什麼結果

result.equals(df_m.set_index(

'id'

))

2、壓縮與展開

(1)stack:這是最基礎的變形函式,總共只有兩個引數:level和dropn

df_s = pd.pivot_table(df,index=

['class'

,'id'

],columns=

'gender'

,values=

['height'

,'weight'])

df_s.groupby(

'class'

).head(

2)

(2) unstack:stack的逆函式,功能上類似於pivot_table

df_stacked.head(

)result=df_stacked.unstack(

).swaplevel(1,

0,axis=1)

.sort_index(axis=1)

result.equals(df_s)

三、啞變數與因子化

dummy variable(啞變數)

這裡主要介紹get_dummies函式,其功能主要是進行one-hot編碼:

df_d = df[

['class'

,'gender'

,'weight']]

df_d.head(

)pd.get_dummies(df_d[

['class'

,'gender']]

).join(df_d[

'weight'])

.head(

)

factorize方法

該方法主要用於自然數編碼,並且缺失值會被記做-1,其中sort引數表示是否排序後賦值

codes, uniques = pd.factorize(

['b'

,none

,'a'

,'c'

,'b'

], sort=

true

)display(codes)

display(uniques)

第四次打卡

文章目錄 一 批量歸一化和殘差網路 二 凸優化 三 梯度下降 四 目標檢測基礎 五 影象風格遷移 六 影象分類案例1 七 影象分類案例2 八 gan 九 dcgan 十 總結 一 批量歸一化和殘差網路 批量歸一化 1 對全連線層做批量歸一化 2 對卷積層做批量歸 化 3 時的批量歸 化 殘差網路 1...

datawhale第四次打卡部落格

實現乙個基於鍊錶法解決衝突問題的雜湊表 實現乙個 lru 快取淘汰演算法 兩數之和 英文版 中文版 class solution def twosum self,nums list int target int list int sorted id sorted range len nums key...

《資料探勘》組隊學習第四次打卡

一 學習內容 task4 建模調參 線性回歸模型 模型效能驗證 嵌入式特徵選擇 模型對比 模型調參 model linearregression normalize true model model.fit train x,train y print intercept model.intercep...