python-3.x - 如何按组统计观察频率
问题描述
我有一个按每年最高值(列指标值)排序和分组的数据框。它给了我每年指标值最高的国家。我的数据框中有 212 个国家,我有 1960 年到 2014 年的年份。
下一步,我想看看哪些 5 个国家在所有可用年份中进入前 10 名的年份最多。因此,对于所有国家/地区,我想记录他们每年进入前 10 名的次数,并查看哪些国家/地区的前 10 名放映量更高。我想要的输出是计算一个国家每年出现在前十名中的次数。我怎样才能做到这一点?这是我到目前为止所拥有的:
gp = (Emissions_C_CO2.sort_values(['Year', 'Indicator_Value'], ascending=[True, False]).groupby(['Year', 'Country_Code']).head(10))
解决方案
尝试这个:
result = (
Emissions_C_CO2.sort_values('Indicator_Value', ascending=False)
.groupby('Year').head(10)
.groupby('Country_Name').size()
.sort_values(ascending=False)
)
解释:
- 按降序对数据框进行
Indicator_Value
排序 - 每年,获得前 10 个国家
- 对于每个国家/地区,计算它在前 10 名列表中出现的次数
- 对结果进行降序排序
这些是链接方法,因此上一步的输出成为下一步的输入。
推荐阅读
- python - 无法迭代 tf.data.Dataset
- javascript - Amazon S3 响应不返回日期标头
- c++ - 自身的成员 STL deque
- vba - 如何让 Listbox.List 保留类型信息?
- ruby-on-rails - Rails 请求中的 JWT 验证
- php - 在 PHP 中使用字符串作为单元测试名称
- github - Git页面没有更新
- android - Dagger2 - 未生成应用程序组件
- python - 如何使用 Beautiful soup 从网页中抓取表格
- angular - ngModel 的角度选择默认值不在选择元素上工作,而是在另一个元素上工作