【发布时间】:2021-10-28 20:20:40
【问题描述】:
我有一个数据框:
state city score
CA San Francisco 80
CA San Francisco 90
...
NC Raleigh 44
NY New York City 22
我想做一个 groupby.head(),但不是整数值,而是选择每个州-城市组合的前 80%,按分数排序。 p>
因此,如果 CA, San Francisco 有 100 行,NC, Raleigh 有 20 行,则最终数据帧将包含 CA、San Francisco 的前 80 个分数行以及 NC、Raleigh 的前 16 个分数行。
所以最终结果代码可能类似于:
df.sort_values('score', ascending=False).groupby(['State', 'City']).head(80%)
谢谢!
【问题讨论】:
-
@It_is_Chris 这很接近,但它只返回随机选择的行的百分比,我需要按分数列对百分比进行排序。意识到我没有在我的原始帖子中澄清这一点,所以我现在将进行编辑
标签: python pandas pandas-groupby