logo
Loading...

使用groupby出現ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional問題 groupby、aggregate操作原理 - Cupoy

在學習下述句子dtype_df = dtype_df.groupby("Column Type")....

ml100-3,ml100-3-d7

使用groupby出現ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional問題 groupby、aggregate操作原理

2019/09/04 上午 10:41
機器學習共學討論版
陳品洵
觀看數:128
回答數:2
收藏數:0
ml100-3
ml100-3-d7

在學習下述句子

dtype_df = dtype_df.groupby("Column Type").aggregate('count').reset_index()

因為想要了解這句的意思,因此試圖分段操作。

dtype_df = df.dtypes.reset_index()

dtype_df.columns=[['Count', 'Column Type']]

dtype_df

在上述步驟都沒有問題

但當輸入:

dtype_df.groupby(dtype_df['Column Type'])

卻出現:

ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional

想知道它出現的原因QQ


另外,因為我的資質駑鈍,實在是看不懂

dtype_df = dtype_df.groupby("Column Type").aggregate('count').reset_index()

這句複雜的操作,不知可否詢問它操作的原理(groupby、aggregate都已大致學過了)

回答列表

  • 2019/09/04 下午 09:58
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    1. ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional

    想知道它出現的原因QQ


    => groupby  裡面應該釋放你要分組的欄位名稱,例如 "Column Type"

  • 2019/09/04 下午 10:02
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:1

    2. dtype_df = dtype_df.groupby("Column Type").aggregate('count').reset_index()

    這句複雜的操作,不知可否詢問它操作的原理(groupby、aggregate都已大致學過了)


    => 這不是你的問題,不用太緊張XD


    groupby("Column Type") => 依照 Column Type 分組

    aggregate('count') => 將每組的資料計算出一個 Count


    舉了例子(官方給的):


    如果原始資料有「Animal」跟「Max Speed」欄位:


    ```

    df

    #    Animal  Max Speed

    # 0  Falcon      380.0

    # 1  Falcon      370.0

    # 2  Parrot       24.0

    # 3  Parrot       26.0

    ```


    依照 Animal Group (分組)後會剩下 Falcon 跟 Parrot 在各組計算平均:


    ```

    df.groupby(['Animal']).mean()

              Max Speed

    # Animal

    # Falcon      375.0

    # Parrot       25.0

    ```