在 Python 中按列分组以获得总计数
Posted
技术标签:
【中文标题】在 Python 中按列分组以获得总计数【英文标题】:Grouping By A Column For A Total Count in 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 我实际上想要一些带有州名的东西,因为州名在表中每个县的数据集中重复。
【参考方案1】:
尝试:
df['Total Counties'] = df.groupby('STNAME')['STNAME'].transform('count')
将“df”更改为您的 DataFrame 名称
【讨论】:
太棒了!那行得通!谢谢!你能解释一下你为什么做 groupby('STNAME')['STNAME'] 吗?以上是关于在 Python 中按列分组以获得总计数的主要内容,如果未能解决你的问题,请参考以下文章