見出し画像

pandas 最大値、最小値の要素を取得する方法

データフレームの、ある列における最大値・最小値となる要素を取得するには、最大値の場合はidxmaxメソッドを使用、最小値の場合はidxminメソッドを使用し、最大値・最小値のindex番号を取得。その取得したindex番号を使用しlocプロパティで要素を取得する。

max_index = df[ "値段" ].idxmax
数値の最大値を求めるseries(値段の列)からidxmaxメソッドを呼出し、
最大値のあるindex番号を取得。
例の場合max_indexは「2」となる。
max_value = df.loc[max_index , "品名" ]
locプロパティの条件をindex番号にし、要素を取得したいカラム名(品名)を指定する。
例の場合、max_valueはindex番号「2」の品名「メロン」となる。

もし最大値・最小値が2つ以上存在する場合は、idxmax/idxminメソッドはindex番号が低い方を取得する。下のデータフレームの場合

max_index = df["値段"].idxmax
max_indexは「3」となり、
max_value = df.loc[max_index, "品名"]
では、もうひとつの最大値の要素を取得できないので、
max_price = df.loc[max_index , "値段"]
で一度、値段の最大値を取得し
max_value = df.loc[df[ "値段" ] == max_price , "品名" ].to_list()
locプロパティの条件を値段の最大値とし、to_listメソッドで要素をリストで取得する。

max_index = df["値段"].idxmax()
max_price = df.loc[max_index, "値段"]
max_value = df.loc[df["値段"] == max_price, "品名"].to_list()

max_valueは、リスト形式で [ メロン , スイカ ] となる。


この記事が気に入ったらサポートをしてみませんか?