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

          9個value_counts()的小技巧,提高Pandas 數據分析效率

          共 4585字,需瀏覽 10分鐘

           ·

          2021-09-06 12:56

          來源:DeepHub IMBA

          本文約1800字,建議閱讀5分鐘 

          我們將探討 Pandas value_counts() 的不同用例。


          數據科學家通常將大部分時間花在探索和預處理數據上。當談到數據分析和理解數據結構時,Pandas value_counts() 是最受歡迎的函數之一。該函數返回一個包含唯一值計數的系列。生成的Series可以按降序或升序排序,通過參數控制包括或排除NA。


          在本文中,我們將探討 Pandas value_counts() 的不同用例。您將學習如何使用它來處理以下常見任務。


          1. 默認參數

          2. 按升序對結果進行排序

          3. 按字母順序排列結果

          4. 結果中包含空值

          5. 以百分比計數顯示結果

          6. 將連續(xù)數據分入離散區(qū)間

          7. 分組并調用 value_counts()

          8. 將結果系列轉換為 DataFrame

          9. 應用于DataFrame


          1、默認參數


          Pandas value_counts() 函數返回一個包含唯一值計數的系列。默認情況下,結果系列按降序排列,不包含任何 NA 值。例如,讓我們從 Titanic 數據集中獲取“Embarked”列的計數。


           >>> df['Embarked'].value_counts()
           
           S   644
           C   168
           Q     77
           Name: Embarked, dtype: int64


          2、按升序對結果進行排序


          value_count() 返回的系列默認按降序排列。對于升序結果,我們可以將參數升序設置為 True。

           >>> df['Embarked'].value_counts(ascending=True)
           
           Q     77
           C   168
           S   644
           Name: Embarked, dtype: int64


          3、按字母順序排列結果


          我們已經學習了參數升序以獲得按值計數 ASC 或 DESC 排序的結果。在某些情況下,最好按字母順序顯示我們的結果。這可以通過在 value_counts() 之后調用 sort_index(ascending=True) 來完成,例如


           >>> df['Embarked'].value_counts(ascending=True).sort_index(ascending=True)
           
           C   168
           Q     77
           S   644
           Name: Embarked, dtype: int64


          4、包括結果中的 NA


          默認情況下,結果中會忽略包含任何 NA 值的行。有一個參數 dropna 來配置它。我們可以將該值設置為 False 以包含 NA 的行數。


           df['Embarked'].value_counts(dropna=False)
           S     644
           C     168
           Q       77
           NaN     2
           Name: Embarked, dtype: int64


          5、以百分比計數顯示結果


          在進行探索性數據分析時,有時查看唯一值的百分比計數會更有用。這可以通過將參數 normalize 設置為 True 來完成,例如:


           df['Embarked'].value_counts(normalize=True)
           
           S   0.724409
           C   0.188976
           Q   0.086614
           Name: Embarked, dtype: float64


          如果我們更喜歡用百分號 (%) 格式化結果,我們可以設置 Pandas 顯示選項如下:


           >>> pd.set_option('display.float_format', '{:.2f}%'.format)
           >>> df['Embarked'].value_counts(normalize = True)
           
           S   0.72%
           C   0.19%
           Q   0.09%
           Name: Embarked, dtype: float64


          6、將連續(xù)數據分入離散區(qū)間


          Pandas value_counts() 可用于使用 bin 參數將連續(xù)數據分入離散區(qū)間。與 Pandas cut() 函數類似,我們可以將整數或列表傳遞給 bin 參數。


          當整數傳遞給 bin 時,該函數會將連續(xù)值離散化為大小相等的 bin,例如:


           >>> df['Fare'].value_counts(bins=3)
           (-0.513, 170.776]     871
           (170.776, 341.553]     17
           (341.553, 512.329]     3
           Name: Fare, dtype: int64


          當列表傳遞給 bin 時,該函數會將連續(xù)值劃分為自定義組,例如:


           >>> df['Fare'].value_counts(bins=[-1, 20, 100, 550])
           (-1.001, 20.0]   515
           (20.0, 100.0]     323
           (100.0, 550.0]     53
           Name: Fare, dtype: int64


          7、分組并執(zhí)行 value_counts()


          Pandas groupby() 允許我們將數據分成不同的組來執(zhí)行計算以進行更好的分析。一個常見的用例是按某個列分組,然后獲取另一列的唯一值的計數。例如,讓我們按“Embarked”列分組并獲取不同“Sex”值的計數。


           >>> df.groupby('Embarked')['Sex'].value_counts()
           
           Embarked Sex   
           C         male       95
                    female     73
           Q         male       41
                    female     36
           S         male     441
                    female   203
           Name: Sex, dtype: int64


          8、將結果系列轉換為 DataFrame


          Pandas value_counts() 返回一個Series,包括前面帶有 MultiIndex 的示例。如果我們希望我們的結果顯示為 DataFrame,我們可以在 value_count() 之后調用 to_frame()。


           >>> df.groupby('Embarked')['Sex'].value_counts().to_frame()


          9、應用于DataFrame


          到目前為止,我們一直將 value_counts() 應用于 Pandas Series,在 Pandas DataFrame 中有一個等效的方法。Pandas DataFrame.value_counts() 返回一個包含 DataFrame 中唯一行計數的系列。


          讓我們看一個例子來更好地理解它:


           df = pd.DataFrame({
              'num_legs': [2, 4, 4, 6],
              'num_wings': [2, 0, 0, 0]},
              index=['falcon', 'dog', 'cat', 'ant']
           )
           >>> df.value_counts()
           
           num_legs num_wings
           4         0           2
           6         0           1
           2         2           1
           dtype: int64


          通過在 df 上調用 value_counts(),它返回一個以 num_legs 和 num_wings 作為索引的 MultiIndex 系列。從結果中,我們可以發(fā)現有 2 條記錄的 num_legs=4 和 num_wing=0。


          同樣,我們可以調用 to_frame() 將結果轉換為 DataFrame


           >>> df.value_counts().to_frame()


          總結


          在本文中,我們探討了 Pandas value_counts() 的不同用例。我希望這篇文章能幫助你節(jié)省學習 Pandas 的時間。我建議您查看 value_counts() API 的文檔并了解您可以做的其他事情。


          謝謝閱讀。本文代碼在這里:

          https://github.com/BindiChen/machine-learning/blob/master/data-analysis/046-pandas-value_counts/pandas-value_counts.ipynb


          編輯:文婧

          校對:林亦霖


          瀏覽 42
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  91吊逼 | 操B视频在线观看 | 国产一级婬片A片AA片 | 激情综合一色播 | 国产精品成人无码a无码 |