ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame の特定の列で最大値を持つ行を見つけるにはどうすればよいでしょうか?

Pandas DataFrame の特定の列で最大値を持つ行を見つけるにはどうすればよいでしょうか?

Patricia Arquette
リリース: 2024-10-31 06:40:02
オリジナル
832 人が閲覧しました

How do you find the row with the maximum value in a specific column of a Pandas DataFrame?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート