層次化索引應用場景
例子王小呆的女朋友李小妹是高三老師,高考結束可以查分後,李小妹讓班級裡面的同學將查分結果彙總給她,形式都是 張三.csv、李四.csv、王五.csv,內容如下:
張三.csv
姓名,科目,分數
張三,英語,128
張三,語文,110
張三,數學,125
張三,理綜,238
李四.csv
姓名,科目,分數
李四,英語,108
李四,語文,98
李四,數學,135
李四,理綜,245
王五.csv
姓名,科目,分數
王五,英語,135
王五,語文,105
王五,數學,140
王五,理綜,256
李小妹看到這一系列的檔案,有點犯愁,於是給小呆交代了一項任務,把這些檔案的內容做成一張包含姓名各科成績的**。
小呆默默的開啟python,先想把這些資料導進去再說,於是寫下**
import pandas as pd
std1 = pd.read_csv(
'張三.csv'
, encoding =
'gb2312'
)print
(std1)
結果報錯,小呆想到張三.csv檔案和上兩次的檔案不一樣,這是中文名命名的檔案,所以是不是需要做點什麼變化,而且要將科目作為索引,應該怎麼做呢?小呆請教了小瓜,小瓜寫下**
std1 = pd.read_csv(
'張三.csv'
, encoding =
'gb2312'
, engine =
'python'
, index_col =
'科目'
)print
(std1)
結果如下
分數
姓名 科目
張三 英語 128
語文 110
數學 125
理綜 238
連續匯入李四.csv、王五.csv。並利用上次的堆疊技術將他們組合成乙個資料塊。於是小呆寫下**
std = pd.concat(
[std1, std2, std3]
)print
(std)
結果如下:
分數
姓名 科目
張三 英語 128
語文 110
數學 125
理綜 238
李四 英語 108
語文 98
數學 135
理綜 245
王五 英語 135
語文 105
數學 140
理綜 256
做到這裡小呆想起來小瓜說過的層次化索引就是這個吧,我可以通過外索引直接索引乙個資料塊,於是小呆寫下**
print
(std[
'李四'
])
執行結果報錯keyerror。小呆問小瓜什麼情況。對於這種情況(注①)不能直接和列表切片索引一樣的方式進行索引,而要採用loc方法才能正確進行索引。小瓜寫下一行**
print
(std.loc[
('李四')]
)
結果如下:
分數
科目
英語 108
語文 98
數學 135
理綜 245
小呆想著怎麼把這樣一綹的資料轉換成**呢?他想起小瓜說起過stack和unstack方法。於是他寫下**
print
(std.unstack(
))
結果如下:
分數
科目 數學 理綜 英語 語文
姓名
張三 125 238 128 110
李四 135 245 108 98
王五 140 256 135 105
小呆看到結果想想,原來這個unstack方法好像是把最內層的行索引旋轉成列索引了,然後列內容按照指定的索引添滿。
那麼stack方法一定是將列索引旋轉重排成行索引,然後按指定的索引添滿相對應的值。為了驗證想法,小呆寫下**
std4 = std.unstack(
)print
(std4.stack(
))
結果如下:
分數
姓名 科目
張三 數學 125
理綜 238
英語 128
語文 110
李四 數學 135
理綜 245
英語 108
語文 98
王五 數學 140
理綜 256
英語 135
語文 105
果真如此,小呆將結果std4交給了小妹。
注①:這個情況是什麼情況呢?小呆還是想不通,小瓜告訴小呆,當是dataframe格式的資料時,要用loc函式來進行行索引。
機器學習
小瓜講機器學習——分類演算法(一)logistic regression(邏輯回歸)演算法原理詳解
小瓜講機器學習——分類演算法(二)支援向量機(svm)演算法原理詳解
小瓜講機器學習——分類演算法(三)樸素貝葉斯法(***** bayes)
小瓜講機器學習——分類演算法(四)k近鄰法演算法原理及python**實現
小瓜講機器學習——分類演算法(五)決策樹演算法原理及python**實現
小瓜講機器學習——聚類演算法(一)k-means演算法原理python**實現
小瓜講機器學習——聚類演算法(二)mean shift演算法原理及python**實現
小瓜講機器學習——聚類演算法(三)dbscan演算法原理及python**實現
資料分析
小呆學資料分析——使用pandas中的merge函式進行資料集合並
小呆學資料分析——使用pandas中的concat函式進行資料集堆疊
小呆學資料分析——pandas中的層次化索引
小呆學資料分析——使用pandas的pivot進行資料重塑
小呆學資料分析——用duplicated/drop_duplicates方法進行重複項處理
小呆學資料分析——缺失值處理(一)
小呆學資料分析——異常值判定與處理(一)
小瓜講資料分析——資料清洗
資料視覺化
小瓜講資料分析——資料視覺化工程(matplotlib庫使用基礎篇)
小瓜講matplotlib高階篇——座標軸設定(座標軸居中、座標軸箭頭、刻度設定、標識設定)
小呆學資料分析 缺失值處理(一)
在收集資料的時候常常會遇到資料缺失,可能由於漏填,可能由於感測器故障,也可能就是邏輯上應該的 比如未婚女生問卷上先生一欄肯定是空出來的缺失值 不管如何缺失值需要在進一步資料分析前要進行相應的處理。預覽本節處理缺失值採用了以下幾個方案 剔除用固定值補充 用平均數補充 例子 小呆被交代一項任務,統計一下...
小呆學資料分析 異常值判定與處理(一)
在收集資料的過程中,可能由於人為錄入錯誤等原因,會出現明顯不合法的資料,需要在進一步分析之前對這些值進行判定並且處理,才能得到合理的資料分析和挖掘的結果。預覽對異常值採用以下方案判定 區間判定 普通統計量 箱型圖判定 例子 小呆被交代一項任務,統計一下這個星期各個洗髮露的銷量,小呆開啟營銷同事的記錄...
資料分析 pandas
pandas是乙個強大的python資料分析的工具包,它是基於numpy構建的,正因pandas的出現,讓python語言也成為使用最廣泛而且強大的資料分析環境之一。pandas的主要功能 具備對其功能的資料結構dataframe,series 整合時間序列功能 提供豐富的數 算和操作 靈活處理缺失...