首页  >  文章  >  后端开发  >  如何在Pandas中GroupBy后选择特定列中具有最小值的行?

如何在Pandas中GroupBy后选择特定列中具有最小值的行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-28 03:20:30336浏览

How to Select Rows with Minimum Value in a Specific Column After GroupBy in Pandas?

Pandas GroupBy 并选择特定列中具有最小值的行

使用 Pandas DataFrame 时,通常需要按某些列对数据进行分组并对这些列执行操作组。一个常见的操作是选择特定列中具有最小值的行。

在本文中,我们将探索一种简单而有效的方法来完成此任务,而无需借助 MultiIndex。

问题陈述:

给定一个包含 A、B 和 C 列的 DataFrame,我们的目标是为 A 列中的每个值选择 B 列中具有最小值的行。

原始数据框:

A B C
1 4 3
1 5 4
1 2 10
2 7 2
2 4 4
2 6 6

所需输出:

A B C
1 2 10
2 4 4

解决方案:

解决这个问题的关键在于Pandas的idxmin()方法。该方法返回每个组的指定列中具有最小值的行的索引。

使用groupby()和idxmin(),我们可以直接选择我们想要的行:

<code class="python"># Group the DataFrame by column 'A'
grouped = df.groupby('A')

# Get the index of the rows with the minimum value in column 'B' for each group
min_idx = grouped.B.idxmin()

# Use the index to select the desired rows
result = df.loc[min_idx]</code>

输出:

   A  B   C
2  1  2  10
4  2  4   4

这种方法可以有效地为 A 中的每个组选择 B 列中具有最小值的行,而不需要复杂的数据结构或中间步骤。

以上是如何在Pandas中GroupBy后选择特定列中具有最小值的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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