大熊貓是全竹宴美食家中的饕餮,亦是十足的瞌睡蟲。不過它們還身懷一項隱秘技能:(不遺余力吞噬下)大量的數據。今天將要介紹的就是數據處理中最強有力也最流行的工具之一:Pandas!
當人們談到數據科學,往往不會立即想到 Pandas。這些黑白相間憨態可掬的大熊貓總是把時間消耗在吃和睡上面,而不是鉆研數據相關的研究。但今天我們就是要用 Pandas 對付候選數據集,然后準備好下一步用于機器學習。我沒法在一期視頻中介紹整個 Pandas 庫,但是所幸我能在這期概述中給你一些幫助,讓你能自行去深入探索 Pandas 的世界。
我吃我吃我吃吃吃!數據集就是我的竹子,別和我搶!
Pandas 是一個低學習成本高性能的數據結構和數據分析工具。拋開大熊貓憨態可掬的樣子不說,「Pandas」這個名字來源于術語「panel data」,指的是統計和計量經濟學上的多維數據。
要安裝 Pandas,只需在 Python 環境中執行 pip install pandas 命令就可以了。之后只需要在代碼中引入 Pandas:import pandas as pd。
人們用 Pandas 時往往都會用到 pd.read_csv 來讀入 CSV 文件中的數據。這也常常是人們使用時落筆的第一點墨。
pd.read_csv 會將數據載入一個 DataFrame 中。它本質上是一張電子表格或是數據表。我們可以通過在 DataFrame 調用 head() 來粗略察看數據集中的概況。
DataFrames 中有一行一行數據,這些數據的列首都是經過命名的,這些命名后的列又被稱為「序列」。
我最喜歡的 DataFrames 的一些特性當中,有一個函數叫做 describe(),這個函數會羅列出你的 DataFrame 的一些相關數據。這個函數有助于你檢查數據集,思考其中的數據分布是否合理,也可以檢驗是否各項屬性都符合預期。
有時候我會用 Pandas 來擾亂數據。有時候你想要打亂所有數據,而不是僅僅釋出數據時取用首部那一點點數據,那么這時 Pandas 就很有用了。比如,假使你的數據處于完全有序的狀態,沒有絲毫混亂,此時你可能就需要進行一些額外的混合、擾亂操作了。
然而,對于那些無法放進內存里的大型數據集,這么做實在不太明智。也許應該試試更高明點的法子來處理。
處理列
要處理數據集中單獨的某一列,只需使用括號來標注出那一列,將該列的名字作為參數傳入即可。如果你不清楚有哪些具體的列名稱,那么可以回過頭看看 .describe() 輸出的內容或者用 .columns 以數組形式輸出 DataFrame 中所有的列名稱。
處理行
處理行的方法與處理列不盡相同。比如,如果我們要想得到某個 DataFrame 中索引為 i 的行,需要使用 .iloc[i] 得到該行數據。
索引為 5,表示這是第 6 行
記住 Pandas 是以 0 作為索引起點的,所以數據中的第一行對應著索引 0。
同時處理行和列
有時你會想要得到某一指定的行、列的數據。由于行列的訪問方式不同,我們需要結合上面講到的兩種方式:
當然,你也可以交換兩者的訪問順序,比如 csv_data.iloc[5][‘sepal_len’]。不過,相較之下我覺得這樣一來可讀性就變差了。
某個行/列范圍
真正有意思的是當你要處理某個行列范圍內數據的時候。
對于列,一個列范圍只需要用一個列名稱的數組來指定。
如果要挨著輸入的列名字太多太復雜,那么可以直接使用 csv_data.columns 得到列名稱數組后,取數組中某個范圍作為列索引的值即可。
本來這兩列我可以直接輸入進去的,不過你明白我的意思就好
如果要得到某個范圍內的行怎么辦?我們用冒號作為 .iloc 之后的括號內中的分隔符來表達即可。
起始索引已經被包括在內了,而終止索引卻被忽略了。注意,返回的是索引為 5、6、7、8、9 的行,而不包含索引為 10 的行。
混合行、列范圍選擇
我們想要的是行的一個子集和列的一個子集,該怎么做?我們把上面談到的各類方法結合起來:
首先,得到所需的列名數組:
cols_2_4 = csv_data.column[2:4]
然后是所有所需的列:
df_cols_2_4 = df[cols_2_4]
選擇這些列中的指定行:
df_cols_2_4.iloc[5:10]
如果你非常熟練了,完全可以把上面三步結合成一步:
csv_data[csv_data.columns[2:4]].iloc[5:10]
我希望你能先暫停視頻回頭想想這個表達式的等價形式。我不會走開,一直在這兒等你。
小結幾句
Pandas 中的鏈式操作不僅會讓數據處理更快,同時當你熟練之后,代碼可讀性也會顯著提高。
我們已經看過一些 DataFrame 的處理了,但是 Pandas 所衍生的一整套工具卻遠遠不止這些。從高效的 PyTables 和 HDF5 式文件存儲到進行統計學分析,處處遍布 Pandas 的身影。
稍后就試著去用一下 Pandas 吧,定會讓你滿意!
-
機器學習
+關注
關注
66文章
8406瀏覽量
132567 -
python
+關注
關注
56文章
4792瀏覽量
84628 -
數據科學
+關注
關注
0文章
165瀏覽量
10053
原文標題:AIA 系列 | 難以置信,大熊貓還能吃數據?
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論