使用groupby出現ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional問題 groupby、aggregate操作原理
在學習下述句子
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
```