【问题标题】:Is there any way make column for each category under each group?有没有办法为每个组下的每个类别制作列?
【发布时间】:2019-10-24 22:48:42
【问题描述】:

有两列都是分类的。我想按第一列分组让age_group 和我的另一列Engagement_category 应该按每个元素创建新列。

我在第一列 age_group 上进行了 groupby。

| age_group    | Engagement_category |
|--------------|---------------------|
| 21-26        | Not Engaged         |
| 27-32        | Disengaged          |
| 33-38        | Engaged             |
| 39-44        | Disengaged          |
| 45-50        | Not Engaged         |
| 50 and Above | Engaged             |
group = df.groupby('age_group')

以下是必填项:

| age_group | Engaged | Nearly Engaged | Not Engaged | Disengaged |
|-----------|---------|----------------|-------------|------------|
| 21-26     | 3       | 4              | 1           | 1          |
| 27-32     | 4       | 0              | 4           | 0          |
| 33-38     | 2       | 0              | 1           | 1          |

谢谢。

【问题讨论】:

  • 这些值从何而来?似乎您在输出中只有随机数。不过,您似乎只想要pd.crosstab(df['Age'], df['Engagement_category'])

标签: python python-3.x pandas pandas-groupby


【解决方案1】:

您希望按前两列进行分组,然后使用“COUNT”函数在数据框中进行聚合。试试这个:

df.groupby(['Age', 'Engagement_category']).agg(['count'])

【讨论】:

  • df.groupby(['Age','Engagement_category'])['Engagement_category'].count()
猜你喜欢
  • 2022-12-02
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多