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