この記事ではPythonのpandasでDataFrameの最大値や最小値を求める方法を解説していきます。
後半には日付データに関することも書いています。
以下のDataFrameを使います。
1 2 3 4 5 6 7 8 9 |
import pandas as pd df1 = pd.DataFrame( data={'列1': [10, 20, 30, 40], '列2': [50, 60, 70, 80], '列3': [12, 37, 48, 120]} ) df1 |
目次
最大値と最小値などをまとめて抽出
- describe関数を使う
- データ数・平均・最大・最小・標準偏差・四分位数のDataFrameを返す
1 2 3 |
#最大。最小・平均などをまとめて表示 df1_des = df1.describe() display(df1_des) |
max・minメソッドを使う方法
- 最大値はmaxメソッド、最小値はminメソッドを使う。
- 最大・最小値を格納したSeriesを返す
- 両方とも使い方は同じ
axis=0
(デフォルト)で列方向の最大値を求める。axis=1
で行方向の最大値を求める。
列ごとの最大・最小値を求める
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#列ごとの最大値(axis=0はなくてもOK) df1.max(axis=0) ##出力結果 列1 40 列2 80 列3 120 dtype: int64 #データ型 type(df1.max(axis=0)) ##出力結果 pandas.core.series.Series ***************************** #列ごとの最小値を求める df1.min() ##出力結果 列1 10 列2 50 列3 12 dtype: int64 |
行ごとの最大・最小値を求める
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#行ごとの最大値 df1.max(axis=1) ##出力結果 0 50 1 60 2 70 3 120 dtype: int64 ***************************** #行ごとの最小値を求める df1.min(axis=1) ##出力結果 0 10 1 20 2 30 3 40 dtype: int64 |
全体の最大・最小値を求める
- max・minメソッドを二回使う
- intを返す
1 2 3 4 5 6 7 8 9 10 11 |
#全体の最大値 df1.max().max() ##出力結果 120 #データ型 type(df1.max().max()) ##出力結果 int |
同じように全体の最小値を求めることも可能です。
日付の最大・最小
以下のDataFrameのbirth列に関して最大と最小を求めてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import pandas as pd df = pd.DataFrame( {'name': ['白銀', '藤原', '石上', '四宮', '早坂'], 'grade': ['3', '3', '2', '3', '3'], 'height': [177, 162, 175, 160, 165], 'weight': [62, 54, 60, 48, 54], 'birth': ['2002/9/9', '2002/3/3', '2003/3/3', '2002/1/1', '2002/4/2'] }, index=[1, 2, 3, 4, 5] ) #日付に変換 df['birth'] = pd.to_datetime(df['birth']) display(df) |
pd.to_datetime
関数でdatetime64
に変換しています。- 日付の最大値は現在日時に最も近い日付を返します。
- 日付の最小値は現在日時から最も遠い日付を返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
print('最小', df['birth'].min()) print('最大' ,df['birth'].max()) ##出力結果 最小 2002-01-01 00:00:00 最大 2003-03-03 00:00:00 #データ型 type(df['birth'].min()) ##出力結果 pandas._libs.tslibs.timestamps.Timestamp |
datetime64でないと文字列として最大と最小が返されるので注意が必要です。
関連記事
Pythonのpandasで平均値や中央値、最頻値を求める方法を紹介します。 今回紹介するメソッドは引数が似ているので使いやすいと思います。 平均値と中央値では以下のDataFrameを使います。 import pand[…]
まとめ
今回は最大と最小の求め方に関して見ていきました。
その他の統計量も一気に求めるならdescribe関数が便利ですね。
今回紹介した関数やメソッドはどれも簡単に使えると思います。
参考になれば幸いです。