python - 在过滤数据框(census.csv)中的多列时提取前 3 个值
问题描述
我正在使用熊猫并尝试查询人口普查数据集。我想根据人口(从最大到最小)提取每个州的前 3 个城市。我正在粘贴数据集的简短快照以供参考
我想要的输出是这样的
我尝试使用 nlargest 但我面临的问题是 STNAME 和 CTYNAME 都是对象。我试过的公式如下:
def abcd(df):
return (df.nlargest(3,['STNAME','CTYNAME','CENSUS2010POP']))
另一种查询方式,我尝试使用 groupby 方法:
df.groupby('STNAME')['CTYNAME','CENSUS2010POP'].max()
但是这个公式给了我每个最大值而不是 3 个最大值。任何人都可以帮忙吗?
解决方案
尝试:
df.groupby('STNAME').apply(lambda grp: grp.nlargest(3,columns='CENSUS2010POP') )
推荐阅读
- javascript - 如何为包含特定圆圈的按钮提供链接
- wpf - 如何围绕圆圈设置路径动画?
- materialize - 移除 Materialise CSS 链接上的悬停效果
- python - 使用任务调度程序和 bat 文件运行 Python 脚本不起作用
- python - 仅返回满足 where 子句的数据框列
- recursion - 这样的函数结构是尾递归的吗?
- firebase - Firebase 功能可在一天中的特定时间重置值
- sql - 查询连接表的计数
- php - I want favorite button for different stories to work properly
- vb.net - 如何将控件动态添加到winform