【Pandas】 DataFrame のある列の最大値を含む行のインデックス値を取得する方法。
今回は、Pandas の DataFrame において、ある列で最大値を求めて、その最大値をもつ行についてインデックスを取得する方法について紹介します。
文章だと少し分かりずらいので、実際のデータでみていきます。
以下のような DataFrame(df)があるとします。

インデックスが「0.01」「0.02」… と連続していて、実際には「1.00」まで続きます。
カラム名が「precision」「recall」「f-measure」の3つになります。
Contents
列ごとの最大値を求める
「precision」「recall」「f-measure」カラムのそれぞれの列ごとの最大値を求めるには、「max」関数を使います。
|
1 |
df.max() |
結果は Series で返ります。これだと、行はバラバラのデータになります。
|
1 2 3 4 |
precision 1.000000 recall 1.000000 f-measure 0.710526 dtype: float64 |
ある列の最大値を持つインデックスを求める
ある列で最大値を持っている行を抽出したいときがあると思います。
今回は、「f-measure」列の中で最大値をもつ行のインデックスの値を求めてみます。
「idxmax」関数を使います。
|
1 |
df['f-measure'].idxmax() |
|
1 |
0.6 |
ある列の最大値を持つ行を抽出する(Series型)
先ほどは、行のインデックス値のみを抽出しましたが、行全体を抽出してみます。
先ほど抽出したインデックス値を loc を使って渡してあげれば行の情報が抽出できます。
|
1 |
df.loc[df['f-measure'].idxmax()] |
Series 型で抽出されます。
|
1 2 3 4 |
precision 0.736364 recall 0.686441 f-measure 0.710526 Name: 0.6, dtype: float64 |
ある列の最大値を持つ行を抽出する(DataFrame型)
Series 型ではなく DataFrame 型で取得したいときは、loc に [ ] を1つ追加して、リストで渡します。
|
1 |
df.loc[[df['f-measure'].idxmax()]] |
無事 DataFrame 型で取得できました。

関連記事
-
-
【Python】 DataFrame の特定の列で出現回数をカウントして降順でソートする方法。
Python で DataFrame 型の特定の列を指定して、対象列の文字列の出現回数をカウントして
-
-
python 2.7 を Windows 64bit OS にインストールした。
python 2.7 を Windows にインストールしたときのメモです。 Python に
-
-
【Atomエディタ】Python 開発用にインストールしてみた。
Python でプログラミングするときの エディタ を探していたのですが、とりあえず Atom とい
-
-
【matplotlib】 Python でヒストグラムの横軸と棒(ビン)の数を調整する方法。
Python の matplotlib を使ってヒストグラムを描画し、横軸の目盛りと棒(ビン)がそろ
-
-
【Pandas】 loc・ilocで1行のみ Series ではなく DataFrame で抽出する方法。
Python の Pandas で DataFrame から loc や iloc を使って行を抽出
-
-
【Google Colaboratory】クラウド上でPythonを使って機械学習を行う。
Python をブラウザ上で実行して、手軽に機械学習ができる環境「Google Colaborato
-
-
【Pandas】 DataFrame の行を抽出する方法【Python】
今回は、Python の Pandas で、DataFrame 型の行を抽出する方法を紹介します。
-
-
【OpenCV】画像の顔部分を検出する方法【Python】
OpenCV を使って、Python で画像から顔部分の検出を行ったときのメモです。 Anac
-
-
【Python】 複数の辞書型の同じ key を持つ value を計算に用いる方法。
Python で、複数の辞書型を読み込んで、同じキー(key)を持つ数値(value)を計算に使う方
-
-
【Spyder】引数のあるスクリプトを実行する方法。
Python の統合開発環境(IDE)である Spyder では、簡単にスクリプトを実行できます。



















