<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          探索性數(shù)據(jù)分析,Python 中這 4 個方法更快、真棒!

          共 2809字,需瀏覽 6分鐘

           ·

          2021-11-28 12:09

          大家好,常用探索性數(shù)據(jù)分析方法很多,比如常用的 Pandas DataFrame 方法有 .head()、.tail()、.info()、.describe()、.plot() 和 .value_counts()。

          今天我給大家分享幾種更快的探索性數(shù)據(jù)分析方法,它們可以進(jìn)一步加速 EDA,歡迎收藏學(xué)習(xí),喜歡點(diǎn)贊支持,文末提供技術(shù)交流群

          我們以一個學(xué)生考試成績的例子,創(chuàng)建一個如下所示的 DataFrame 并繼續(xù)操作。

          import?pandas?as?pd
          import?numpy?as?np
          df?=?pd.DataFrame(?{?????
          "Student"?:?["Mike",?"Jack",?"Diana",?"Charles",?"Philipp",?"Charles",?"Kale",?"Jack"]?,???????????
          "City"?:?["London",?"London",?"Berlin",?"London",?"London",?"Berlin",?"London",?"Berlin"]?,
          "Age"?:?[20,?40,?18,?24,?37,?40,?44,?20?],
          "Maths_Score"?:?[84,?80,?50,?36,?44,?24,?41,?35],
          "Science_Score"?:?[66,?83,?51,?35,?43,?58,?71,?65]}?)?
          df

          在 Pandas 中創(chuàng)建 groupby() ?對象

          在許多情況下,我們希望將數(shù)據(jù)集拆分為多個組并對這些組進(jìn)行處理。Pandas 方法 groupby() 用于將 DataFrame 中的數(shù)據(jù)分組。

          與其一起使用 groupby() 和聚合方法,不如創(chuàng)建一個 groupby() 對象。理想的情況是,我們可以在需要時直接使用此對象。

          讓我們根據(jù)列“City”將給定的 DataFrame 分組

          df_city_group?=?df.groupby("City")

          我們創(chuàng)建一個對象 df_city_group,該對象可以與不同的聚合相結(jié)合,例如 min()、max()、mean()、describe() 和 count()。一個例子如下所示。

          要獲取“City”是Berlin的 DataFrame 子集,只需使用方法 .get_group()

          這不需要為每個組創(chuàng)建每個子 DataFrame 的副本,比較節(jié)省內(nèi)存。

          另外,使用 .groupby() 進(jìn)行切片比常規(guī)方法快 2 倍!!

          使用 .nlargest()

          通常,我們根據(jù)特定列的值了解 DataFrame 的 Top 3 或 Top 5 數(shù)據(jù)。例如,從考試中獲得前 3 名得分者或從數(shù)據(jù)集中獲得前 5 名觀看次數(shù)最多的電影。使用 Pandas .nlargest() 是最簡單的方式。

          df.nlargest(N,?column_name,?keep?=?‘first’?)

          使用 .nlargest() 方法,可以檢索包含指定列的 Top ‘N’ 值的 DataFrame 行。

          在上面的示例中,讓我們獲取前 3 個“Maths_Score”的 DataFrame 的行。如果兩個值之間存在聯(lián)系,則可以修改附加參數(shù)和可選參數(shù)。它需要值“first”、“l(fā)ast”和“all”來檢索領(lǐng)帶中的第一個、最后一個和所有值。這種方法的優(yōu)點(diǎn)是,你不需要專門對 DataFrame 進(jìn)行排序。

          使用 .nsmallest()

          與Top 3 或5 類似,有時我們也需要DataFrame 中的Last 5 條記錄。例如,獲得評分最低的 5 部電影或考試中得分最低的 5 名學(xué)生。使用 Pandas .nsmallest() 是最簡單的方式

          df.nsmallestst(N,?column_name,?keep?=?‘first’?)

          使用 .nsmallest() 方法,可以檢索包含指定列的底部“N”個值的 DataFrame 行。

          在同一個示例中,讓我們獲取 DataFrame“df”中“Maths_Score”最低的 3 行。

          在這里插入圖片描述

          邏輯比較

          比較運(yùn)算符 <、>、<=、>=、==、!= 及其包裝器 .lt()、.gt()、.le()、.ge()、.eq() 和 .ne() 分別在以下情況下非常方便將 DataFrame 與基值進(jìn)行比較,這種比較會產(chǎn)生一系列布爾值,這些值可用作以后的指標(biāo)。

          • 基于比較對 DataFrame 進(jìn)行切片

          • 可以基于與值的比較從 DataFrame 中提取子集。

          • 根據(jù)兩列的比較在現(xiàn)有 DataFrame 中創(chuàng)建一個新列。

          所有這些場景都在下面的示例中進(jìn)行了解釋

          #?1.?Comparing?the?DataFrame?to?a?base?value
          #?Selecting?the?columns?with?numerical?values?only
          df.iloc[:,2:5].gt(50)
          df.iloc[:,2:5].lt(50)

          #?2.?Slicing?the?DataFrame?based?on?comparison
          #?df1?is?subset?of?df?when?values?in?"Maths_Score"?column?are?not?equal?or?equal?to?'35'
          df1?=?df[df["Maths_Score"].ne(35)]
          df2?=?df[df["Maths_Score"].eq(35)]


          #?3.?Creating?new?column?of?True-False?values?by?comparing?two?columns
          df["Maths_Student"]?=?df["Maths_Score"].ge(df["Science_Score"])
          df["Maths_Student_1"]?=?df["Science_Score"].le(df["Maths_Score"])

          總結(jié)

          在使用 Python 進(jìn)行數(shù)據(jù)分析時,我發(fā)現(xiàn)這些方法非常方便,它確實(shí)讓數(shù)據(jù)分析變得更快。歡迎大家嘗試這些,如果你有那些更棒的方法,歡迎評論區(qū)留言!



          妙不可言!使用 Python 管道 Pipe 編寫代碼如此優(yōu)雅!


          蘇炳添新論文提出運(yùn)動監(jiān)控系統(tǒng)!借助可穿戴設(shè)備,聚焦于運(yùn)動信號的科學(xué)檢測方式


          精選 15 個頂級 Python 庫,你必須要試試!


          長按或掃描下方二維碼,后臺回復(fù):加群,可申請入群。一定要備注:入群+地點(diǎn)+學(xué)習(xí)/公司。例如:入群+上海+復(fù)旦。


          感謝你的分享,點(diǎn)贊,在看??

          瀏覽 25
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久草热热| 国产亚洲aa级大片在线 | 国产高潮的视频网站在线观看 | 亚洲第九十九页 | 国产亲妺妺乱的性视频 |