如何使用Pandas统计各州各子群体男女人数及实现方法
你当前的代码只把gender和party作为分组键,所以统计的是全量数据下各政党、性别的总人数。要实现按州拆分统计,只需要把state也加入分组维度即可:
方案1:长表格式输出(每行对应一个州+政党+性别的统计结果)
import pandas as pd df = pd.read_csv("legislators-current.csv") # 调整groupby的分组顺序,先按州分组,再按政党、性别分组 grouped = df[['state', 'party', 'gender']].groupby(['state', 'party', 'gender']) # 统计数量并重命名列更直观 count_result = grouped.size().reset_index(name='人数') print(count_result)
输出会是类似如下的结构:
state party gender 人数 0 WK Democrat F 16 1 WK Democrat M 16 2 WK Republican F 32 3 WK Republican M 32 ...
方案2:宽表格式输出(每行对应一个州,不同政党性别作为列展示)
如果想要更直观的单州一行的展示效果,可以用透视表实现:
import pandas as pd df = pd.read_csv("legislators-current.csv") pivot_result = pd.pivot_table( df, index='state', columns=['party', 'gender'], values='gender', aggfunc='count', fill_value=0 # 不存在的组合默认填0 ) print(pivot_result)
内容的提问来源于stack exchange,提问作者user15273560
相关产品推荐
相关产品推荐

