第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...