如何对 DataFrame 中特定列内的数据进行分组和排序?

Barbara Streisand
发布: 2024-10-20 17:20:02
原创
125 人浏览过

How to Group and Sort Data within Specific Columns in a DataFrame?

Pandas Groupby 和组内排序

按多列对 DataFrame 进行分组是数据操作中的常见任务。它允许我们按这些列聚合数据并对聚合结果执行进一步的操作。然而,通常需要对每个组内的聚合结果进行排序以获得顶行或底行。

考虑问题中提供的 DataFrame df:

   count     job source
0      2   sales      A
1      4   sales      B
2      6   sales      C
3      3   sales      D
4      7   sales      E
5      5  market      A
6      3  market      B
7      2  market      C
8      4  market      D
9      1  market      E
登录后复制

目标是按作业和源列对 df 进行分组,然后在每个组中按降序对“计数”列进行排序。为此,我们可以使用 groupby() 和 sort_values() 函数,如下所示:

<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False)</code>
登录后复制

这将按降序对每个组中的“count”列进行排序,并提供以下输出:

job    source       
sales  E           7
       C           6
       B           4
       D           3
       A           2
market A           5
       D           4
       B           3
       C           2
       E           1
登录后复制

但是,如果我们只想获取每组中的前三行,我们可以使用 head() 函数:

<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False).groupby('job').head(3)</code>
登录后复制

这将给我们以下结果:

   count     job source
4      7   sales      E
2      6   sales      C
1      4   sales      B
5      5  market      A
8      4  market      D
6      3  market      B
登录后复制

通过组合 groupby()、sort_values() 和 head() 函数,我们可以有效地对 pandas 中每个组中的顶部或底部行进行分组、排序和选择。

以上是如何对 DataFrame 中特定列内的数据进行分组和排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!