Pandas DataFrame を使用する場合、多くの場合、データを特定の列ごとにグループ化し、それらに対して操作を実行する必要があります。グループ。一般的な操作の 1 つは、特定の列の最小値を持つ行を選択することです。
この記事では、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 中国語 Web サイトの他の関連記事を参照してください。