【问题标题】:Grouping By A Column For A Total Count in Python在 Python 中按列分组以获得总计数
【发布时间】:2019-11-26 18:30:07
【问题描述】:

我正在为 Coursera 上的数据科学简介课程解决一个问题,我正在努力将数据添加到数据框中的列中。

这是我正在使用的数据集:

    SUMLEV  REGION  DIVISION    STATE   COUNTY  STNAME  CTYNAME     
1   50      3       6           1       1       Alabama Autauga County  
2   50      3       6           1       3       Alabama Baldwin County  
3   50      3       6           1       5       Alabama Barbour County  
4   50      3       6           1       7       Alabama Bibb County 

我要做的是插入一个名为 TotalCounties 的列,其中包含按州划分的县总数作为最后一列。我在 SQL 中做过类似的事情,但在 Python 中似乎不太一样。

我尝试了下面的代码,但该列最终显示为 NaN 而不是我想要的数字。

   counties_only_df = census_df[census_df['SUMLEV'] == 50]
   x = counties_only_df.groupby('STNAME').count()['SUMLEV']
   counties_only_df['Total Counties'] = x

我想在新创建的列中显示一个数字而不是 NaN。

【问题讨论】:

  • 这就是你的意思counties_only_df['Total Counties'] = counties_only_df.groupby('STNAME').transform('count')?或者你想对县列做点什么?
  • 你能包含一个明确的期望输出吗?
  • @BenPap 我实际上想要一些带有州名的东西,因为州名在表中每个县的数据集中重复。

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


【解决方案1】:

尝试:

df['Total Counties'] = df.groupby('STNAME')['STNAME'].transform('count')

将“df”更改为您的 DataFrame 名称

【讨论】:

  • 太棒了!那行得通!谢谢!你能解释一下你为什么做 groupby('STNAME')['STNAME'] 吗?
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 2021-09-30
  • 2023-02-07
  • 1970-01-01
相关资源
最近更新 更多