0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)處理中最強有力也最流行的工具之一:Pandas!

Tensorflowers ? 來源:未知 ? 作者:李倩 ? 2018-06-20 10:09 ? 次閱讀

大熊貓是全竹宴美食家中的饕餮,亦是十足的瞌睡蟲。不過它們還身懷一項隱秘技能:(不遺余力吞噬下)大量的數(shù)據(jù)。今天將要介紹的就是數(shù)據(jù)處理中最強有力也最流行的工具之一:Pandas!

當(dāng)人們談到數(shù)據(jù)科學(xué),往往不會立即想到 Pandas。這些黑白相間憨態(tài)可掬的大熊貓總是把時間消耗在吃和睡上面,而不是鉆研數(shù)據(jù)相關(guān)的研究。但今天我們就是要用 Pandas 對付候選數(shù)據(jù)集,然后準(zhǔn)備好下一步用于機器學(xué)習(xí)。我沒法在一期視頻中介紹整個 Pandas 庫,但是所幸我能在這期概述中給你一些幫助,讓你能自行去深入探索 Pandas 的世界。

我吃我吃我吃吃吃!數(shù)據(jù)集就是我的竹子,別和我搶!

Pandas 是一個低學(xué)習(xí)成本高性能的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。拋開大熊貓憨態(tài)可掬的樣子不說,「Pandas」這個名字來源于術(shù)語「panel data」,指的是統(tǒng)計和計量經(jīng)濟學(xué)上的多維數(shù)據(jù)。

要安裝 Pandas,只需在 Python 環(huán)境中執(zhí)行 pip install pandas 命令就可以了。之后只需要在代碼中引入 Pandas:import pandas as pd。

人們用 Pandas 時往往都會用到 pd.read_csv 來讀入 CSV 文件中的數(shù)據(jù)。這也常常是人們使用時落筆的第一點墨。

pd.read_csv 會將數(shù)據(jù)載入一個 DataFrame 中。它本質(zhì)上是一張電子表格或是數(shù)據(jù)表。我們可以通過在 DataFrame 調(diào)用 head() 來粗略察看數(shù)據(jù)集中的概況。

DataFrames 中有一行一行數(shù)據(jù),這些數(shù)據(jù)的列首都是經(jīng)過命名的,這些命名后的列又被稱為「序列」。

我最喜歡的 DataFrames 的一些特性當(dāng)中,有一個函數(shù)叫做 describe(),這個函數(shù)會羅列出你的 DataFrame 的一些相關(guān)數(shù)據(jù)。這個函數(shù)有助于你檢查數(shù)據(jù)集,思考其中的數(shù)據(jù)分布是否合理,也可以檢驗是否各項屬性都符合預(yù)期。

有時候我會用 Pandas 來擾亂數(shù)據(jù)。有時候你想要打亂所有數(shù)據(jù),而不是僅僅釋出數(shù)據(jù)時取用首部那一點點數(shù)據(jù),那么這時 Pandas 就很有用了。比如,假使你的數(shù)據(jù)處于完全有序的狀態(tài),沒有絲毫混亂,此時你可能就需要進行一些額外的混合、擾亂操作了。

然而,對于那些無法放進內(nèi)存里的大型數(shù)據(jù)集,這么做實在不太明智。也許應(yīng)該試試更高明點的法子來處理。

處理列

要處理數(shù)據(jù)集中單獨的某一列,只需使用括號來標(biāo)注出那一列,將該列的名字作為參數(shù)傳入即可。如果你不清楚有哪些具體的列名稱,那么可以回過頭看看 .describe() 輸出的內(nèi)容或者用 .columns 以數(shù)組形式輸出 DataFrame 中所有的列名稱。

處理行

處理行的方法與處理列不盡相同。比如,如果我們要想得到某個 DataFrame 中索引為 i 的行,需要使用 .iloc[i] 得到該行數(shù)據(jù)。

索引為 5,表示這是第 6 行

記住 Pandas 是以 0 作為索引起點的,所以數(shù)據(jù)中的第一行對應(yīng)著索引 0。

同時處理行和列

有時你會想要得到某一指定的行、列的數(shù)據(jù)。由于行列的訪問方式不同,我們需要結(jié)合上面講到的兩種方式:

當(dāng)然,你也可以交換兩者的訪問順序,比如 csv_data.iloc[5][‘sepal_len’]。不過,相較之下我覺得這樣一來可讀性就變差了。

某個行/列范圍

真正有意思的是當(dāng)你要處理某個行列范圍內(nèi)數(shù)據(jù)的時候。

對于列,一個列范圍只需要用一個列名稱的數(shù)組來指定。

如果要挨著輸入的列名字太多太復(fù)雜,那么可以直接使用 csv_data.columns 得到列名稱數(shù)組后,取數(shù)組中某個范圍作為列索引的值即可。

本來這兩列我可以直接輸入進去的,不過你明白我的意思就好

如果要得到某個范圍內(nèi)的行怎么辦?我們用冒號作為 .iloc 之后的括號內(nèi)中的分隔符來表達(dá)即可。

起始索引已經(jīng)被包括在內(nèi)了,而終止索引卻被忽略了。注意,返回的是索引為 5、6、7、8、9 的行,而不包含索引為 10 的行。

混合行、列范圍選擇

我們想要的是行的一個子集和列的一個子集,該怎么做?我們把上面談到的各類方法結(jié)合起來:

首先,得到所需的列名數(shù)組:

cols_2_4 = csv_data.column[2:4]

然后是所有所需的列:

df_cols_2_4 = df[cols_2_4]

選擇這些列中的指定行:

df_cols_2_4.iloc[5:10]

如果你非常熟練了,完全可以把上面三步結(jié)合成一步:

csv_data[csv_data.columns[2:4]].iloc[5:10]

我希望你能先暫停視頻回頭想想這個表達(dá)式的等價形式。我不會走開,一直在這兒等你。

小結(jié)幾句

Pandas 中的鏈?zhǔn)讲僮鞑粌H會讓數(shù)據(jù)處理更快,同時當(dāng)你熟練之后,代碼可讀性也會顯著提高。

我們已經(jīng)看過一些 DataFrame 的處理了,但是 Pandas 所衍生的一整套工具卻遠(yuǎn)遠(yuǎn)不止這些。從高效的 PyTables 和 HDF5 式文件存儲到進行統(tǒng)計學(xué)分析,處處遍布 Pandas 的身影。

稍后就試著去用一下 Pandas 吧,定會讓你滿意!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131841
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84077
  • 數(shù)據(jù)科學(xué)

    關(guān)注

    0

    文章

    164

    瀏覽量

    10022

原文標(biāo)題:AIA 系列 | 難以置信,大熊貓還能吃數(shù)據(jù)?

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Python利用pandas讀寫Excel文件

    使用pandas模塊讀取Excel文件可以更為方便和快捷。pandas可以將Excel文件讀取為個DataFrame對象,方便進行數(shù)據(jù)處理和分析。
    的頭像 發(fā)表于 12-16 11:22 ?1029次閱讀
    Python利用<b class='flag-5'>pandas</b>讀寫Excel文件

    pandas數(shù)據(jù)分析常見操作

    數(shù)據(jù)分析-pandas數(shù)據(jù)處理清洗常用總結(jié)
    發(fā)表于 08-08 06:46

    pandas對babynames數(shù)據(jù)集的簡單處理

    利用Python進行數(shù)據(jù)分析——第二章 引言(2):利用pandas對babynames數(shù)據(jù)集進行簡單處理
    發(fā)表于 08-09 12:58

    pandas是什么?

    的大概內(nèi)容:例如:隨著人工智能的不斷發(fā)展,機器學(xué)習(xí)這門技術(shù)越來越重要,很多人都開啟了學(xué)習(xí)機器學(xué)習(xí),本文就介紹了機器學(xué)習(xí)的基礎(chǔ)內(nèi)容。提示:以下是本篇文章正文內(nèi)容,下面案例可供參考、pandas是什么?示例:
    發(fā)表于 07-14 07:48

    pandas是什么

    人工智能的不斷發(fā)展,機器學(xué)習(xí)這門技術(shù)越來越重要,很多人都開啟了學(xué)習(xí)機器學(xué)習(xí),本文就介紹了機器學(xué)習(xí)的基礎(chǔ)內(nèi)容。提示:以下是本篇文章正文內(nèi)容,下面案例可供參考、pandas是什么?示例:pan
    發(fā)表于 08-09 07:39

    基于NumPy的pandas工具

    pandas 是基于NumPy 的工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。二、使用步驟1.引入庫代碼如下(示例):import n
    發(fā)表于 08-16 08:47

    如何去使用pandas工具

    文章目錄前言、pandas是什么?二、使用步驟1.引入庫2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著人工智能的不斷發(fā)展,機器學(xué)習(xí)這門技術(shù)越來越重要,很多人
    發(fā)表于 08-24 06:49

    pandas是什么?

    人工智能的不斷發(fā)展,機器學(xué)習(xí)這門技術(shù)越來越重要,很多人都開啟了學(xué)習(xí)機器學(xué)習(xí),本文就介紹了機器學(xué)習(xí)的基礎(chǔ)內(nèi)容。提示:以下是本篇文章正文內(nèi)容,下面案例可供參考、pandas是什么?示例:pan
    發(fā)表于 01-12 07:53

    pandas讀取csv文件有什么方法和注意點?

    這篇文章介紹了利用數(shù)據(jù)分析工具pandas讀取csv文件的方法和注意點,便于迅速過渡到數(shù)據(jù)處理階段。pandas
    的頭像 發(fā)表于 07-21 10:00 ?9712次閱讀
    <b class='flag-5'>pandas</b>讀取csv文件有什么方法和注意點?

    pandas的快速入門介紹

    pandas 是基于NumPy 的工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas
    發(fā)表于 06-03 08:00 ?0次下載
    <b class='flag-5'>pandas</b>的快速入門介紹

    大眾把特斯拉視為最強有力的競爭對手

    大眾集團首席執(zhí)行官赫伯特·迪斯(Herbert Diess)曾公開自稱是埃隆·馬斯克(Elon Musk)的粉絲,并把特斯拉視為最強有力的競爭對手,在電動汽車的制造和電池開發(fā)方面努力超越特斯拉
    的頭像 發(fā)表于 01-14 11:08 ?1806次閱讀

    Python工具pandas篩選數(shù)據(jù)的15個常用技巧

    pandas是Python數(shù)據(jù)分析必備工具,它有強大的數(shù)據(jù)清洗能力,往往能用非常少的代碼實現(xiàn)較復(fù)雜的數(shù)據(jù)處理 今天,總結(jié)了
    的頭像 發(fā)表于 03-30 10:44 ?2796次閱讀
    Python<b class='flag-5'>工具</b><b class='flag-5'>pandas</b>篩選<b class='flag-5'>數(shù)據(jù)</b>的15個常用技巧

    數(shù)據(jù)處理pandas的groupby小技巧

    pandas的groupby是數(shù)據(jù)處理個非常強大的功能。雖然很多同學(xué)已已經(jīng)非常熟悉了,但有些小技巧還是要和大家普及下的。為了給大家演示,我們采用
    的頭像 發(fā)表于 04-09 11:34 ?2290次閱讀

    Pandas:Python中最好的數(shù)據(jù)分析工具

    Pandas絕對是Python中最好的數(shù)據(jù)分析工具,不接受反駁。 本文將展示如何美化 Pandas DataFrame 中的數(shù)字,并使用
    的頭像 發(fā)表于 10-31 10:47 ?389次閱讀
    <b class='flag-5'>Pandas</b>:Python<b class='flag-5'>中最</b>好的<b class='flag-5'>數(shù)據(jù)</b>分析<b class='flag-5'>工具</b>

    Pandas:Python中強大方便的繪圖功能

    Pandas是Python中非常常用的數(shù)據(jù)處理工具,使用起來非常方便。由于建立在NumPy數(shù)組結(jié)構(gòu)之上,所以它的很多操作通過NumPy或者Pandas自帶的擴展模塊編寫,這些模塊用Cython編寫并
    的頭像 發(fā)表于 11-03 11:04 ?419次閱讀
    <b class='flag-5'>Pandas</b>:Python中強大方便的繪圖功能