Python pandasでn個の最大値・最小値を取得する方法 nlargest, nsmallestの使い方

Pythonのpandasライブラリを使って、n個の最大値・最小値を効率的に取得する方法を解説します。

Pythonのpandasで、ある列のn個の最大値や最小値を一度に取得する方法を教えてください。

pandasには、nlargestとnsmallestというメソッドがあります。これらを使えば簡単にn個の最大値や最小値を取得できます。

目次

nlargestとnsmallestの概要

pandasのnlargestとnsmallestは、SeriesまたはDataFrameの列からn個の最大値または最小値を取得するメソッドです。これらのメソッドは、sort_valuesメソッドを使って列の値をソートした上で、headメソッドを使ってn個の値を取得します。

nlargestは、最大値からn個分nsmallestは、最小値からn個分取得されます。データ分析において、n個の最大値や最小値を一度に取得することができるため、非常に便利な機能です。

nlargestとnsmallestの使い方

pandasのnlargestとnsmallestを使うには、以下のようにコードを記述します。

  • Seriesの場合
s.nlargest(n)  # n個の最大値を取得
s.nsmallest(n)  # n個の最小値を取得
  • DataFrameの場合
df['column_name'].nlargest(n)  # n個の最大値を取得
df['column_name'].nsmallest(n)  # n個の最小値を取得

ここで、sはSeriesオブジェクト、dfはDataFrameオブジェクトを表しています。また、column_nameには、取得したい列名を指定します。引数には、取得する最大値または最小値の個数を指定します。負の値を指定することで、最小値または最大値を取得することもできます。

nlargestとnsmallestを使ったサンプルプログラム

ある学校の成績データがあるとします。このデータには、生徒の名前と英語の成績が含まれています。このデータから、英語の成績の中で、最も高い成績の生徒と、最も低い成績の生徒をそれぞれ3名ずつ取得したいとします。

以下は、上記のシチュエーションに対して、nlargestとnsmallestを使ったサンプルプログラムです。

import pandas as pd

# サンプルデータの作成
data = {'name': ['Alice', 'Bob', 'Charlie', 'Dave', 'Eva'],
        'score': [80, 95, 70, 65, 85]}
df = pd.DataFrame(data)

# score列の最大値・最小値を取得
print(df.nlargest(3, 'score'))  # 最高成績の生徒を3名取得
print(df.nsmallest(3, 'score'))  # 最低成績の生徒を3名取得

上記のプログラムでは、pandasのnlargestとnsmallestを使って、英語の成績の中で最も高い成績の生徒と最も低い成績の生徒をそれぞれ3名ずつ取得しています。

nlargestメソッドを使って、score列から最大値を3つ取得し、nsmallestメソッドを使って、score列から最小値を3つ取得しています。

引数には、取得する最大値または最小値の個数を指定しています。また、DataFrameオブジェクトのnlargestとnsmallestメソッドは、第一引数に取得する最大値または最小値の個数、第二引数に取得する列名を指定します。

出力結果は以下のようになります。

     name  score
1     Bob     95
4     Eva     85
0   Alice     80
     name  score
3    Dave     65
2  Charlie     70
0    Alice     80

上記の出力結果から、nlargestメソッドによってscore列から取得した最大値(最高成績)の生徒は、Bob、Eva、Aliceの3名であり、nsmallestメソッドによって取得した最小値(最低成績)の生徒は、Dave、Charlie、Aliceの3名であることがわかります。

まとめ

Pythonのpandasライブラリを使って、n個の最大値・最小値を効率的に取得する方法を解説しました。

  • nlargestとnsmallestを使えば、SeriesまたはDataFrameの列からn個の最大値または最小値を取得することができる。
  • DataFrameオブジェクトのnlargestとnsmallestメソッドは、第一引数に取得する最大値または最小値の個数、第二引数に取得する列名を指定する。
  • 引数には、取得する最大値または最小値の個数を指定し、負の値を指定することで、最小値または最大値を取得することもできる。

nlargestとnsmallestの使い方がとても分かりやすかったです。これらを利用すると簡単に最大・最小のデータを取得できますね。

pandasのnlargestとnsmallestを使えば、n個の最大値や最小値を簡単に取得することができます。この機能を活用することで、データ分析をよりスムーズに行うことができます。また、引数に負の値を指定することで、最小値や最大値を取得することもできるので、慣れておくと便利です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次