首页  >  文章  >  后端开发  >  如何对 DataFrame 中特定列内的数据进行分组和排序?

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

Barbara Streisand
Barbara Streisand原创
2024-10-20 17:20:02126浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn