Pandas DataFrames での最大値の検索
pandas で、特定の列の最大値を保持する行を特定するには、単純なアプローチが必要です。
pandas.DataFrame.idxmax の使用
pandas ライブラリは、このニーズに直接対処する idxmax 関数を提供します。指定された列の最大値を持つ行のインデックス ラベルを取得します。次の例を考えてみましょう。
<code class="python">import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), columns=['A', 'B', 'C']) print(df) A B C 0 1.232853 -1.979459 -0.573626 1 0.140767 0.394940 1.068890 2 0.742023 1.343977 -0.579745 3 2.125299 -0.649328 -0.211692 4 -0.187253 1.908618 -1.862934 print(df['A'].idxmax()) # row index with maximum value in column 'A' print(df['B'].idxmax()) # row index with maximum value in column 'B' print(df['C'].idxmax()) # row index with maximum value in column 'C' # Output 3 # row index 3 4 # row index 4 1 # row index 1</code>
numpy.argmax を使用した代替アプローチ
また、numpy.argmax を使用して同じ結果を得ることができます。ラベル インデックスではなく、位置インデックスを返します。 argmax はかつて idxmax と呼ばれていましたが、後に後者を優先して置き換えられたことに注意してください。
歴史的コンテキスト: 行ラベルと整数インデックス
In以前のバージョンの panda では、行ラベルはラベルではなく整数のインデックスで表されていました。この慣行は、現在では時代遅れになっていますが、一般的に使用される多くのアプリケーションで存続しています。
ラベル付き行インデックスへの移行に適応するために、最大要素を含む行のインデックス内の位置インデックスを返すように argmax 関数が変更されました。 。この変更は、特に行ラベルが重複している場合など、整数インデックスの使用によって生じる混乱を軽減することを目的としています。
重複行ラベルの処理
idxmax が返すことに注意することが重要です。整数ではなく行ラベル。行ラベルが重複している場合、idxmax の使用は不十分になります。このような場合に位置インデックスを取得するには、インデックス ラベルから手動で抽出する必要がある場合があります。
以上がPandas DataFrame の特定の列で最大値を持つ行を見つけるにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。