为了账号安全,请及时绑定邮箱和手机立即绑定

使用另一列分组后获取具有最大列数的记录

使用另一列分组后获取具有最大列数的记录

慕后森 2021-12-09 14:31:35
我目前正在用 python 学习熊猫,但遇到了一个问题。我有一个包含美国人口普查数据csv variables info的 csv 文件。对于这个问题,我们可以关注名为 STNAME(例如,albama)的列和名为 COUNTY 的列。STNAME 对每个县都有重复的值。也就是说,其中的每个县都可以有多个“albama”。问题是:哪个州的县最多?(提示:仔细考虑 sumlevel 键!您将来的问题也需要它......)我在尝试什么:1.a> census_df[census_df.groupby('STNAME')['COUNTY'].count() == max(census_df.groupby('STNAME')['COUNTY'].count())]1.b> census_df[census_df.groupby('STNAME')['COUNTY'].count() == (census_df.groupby('STNAME')['COUNTY'].count().max())]1.c> census_df.groupby('STNAME')[census_df.groupby('STNAME')['COUNTY'].count() == (census_df.groupby('STNAME')['COUNTY'].count().max())]在这里,我试图获取具有最大县计数的记录。最后一个给出错误:'未找到列:假,真'2>x = (census_df.groupby('STNAME')['COUNTY'].count() == census_df.groupby('STNAME')['COUNTY'].count().max() )x[x['COUNTY'] == True]在这里,我按州名分组并计算每个州的县数并获取最大值我可以将值作为 bool 获取。因为只有一个带有 bool "True" 的状态。但我不知道如何只获取那条记录。我应该如何进行?
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

我找到了!

census_df.groupby('STNAME')['COUNTY'].count()[census_df.groupby('STNAME')['COUNTY'].count() == (census_df.groupby('STNAME')['COUNTY'].count().max())]

我认为唯一缺少的是 ['COUNTY'].count() 。我认为这是不必要的,因为我在 [] 括号内查询它,但我想我错了。我的理解是,最外层的格式与通过查询获取的格式不同。


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信