Pandasのデータフレームの最大要素を取得する方法 – 行、列、データフレーム全体

Pandas DataFrameの最大要素を取得する方法

DataFrameは、複数のSeries` オブジェクトの上に構築された、特別な種類の二次元配列を表すデータ構造です。

これは、Pythonのデータ解析フレームワークであるPandasの中心的なデータ構造です。

ということです。

データフレームについてまだよく知らない場合は、データフレームについてのガイドをご覧ください。

DataFrameは行や列に名前を付けることができ、ある意味、テーブルを表現することができます。

Pandasをインポートして、辞書からDataFrameを作成してみましょう。

import pandas as pd


df_data = {
    "column1": [24, 9, 20, 24],
    "column2": [17, 16, 201, 16]
}


df = pd.DataFrame(df_data) 
print(df)


PandasはPythonと非常によく統合されており、辞書から簡単にDataFrameを作成することができます。

今作成した df には、カラムとそれぞれの値が含まれています。

   column1  column2
0       24       17
1        9       16
2       20      201
3       24       16


各カラムは要素のリストを持っており、各カラム、各行、または DataFrame 全体の最大要素を検索することができます。

Pandas DataFrameのカラムの最大要素を探す

各カラムの最大要素を見つけるために、DataFrameクラスの max() メソッドを呼び出します。

このメソッドは、カラム名とその最大値の Series を返します。

max_elements = df.max()
print(max_elements)


これは、予想通り、 df の各カラムの最大値を返します。

column1     24
column2    201
dtype: int64


しかし、ある列の max() 要素を見つけるには、まずその列を分離して、特定の Series に対して max() メソッドを呼び出す必要があります。

max_element = df['column1'].max()
print(max_element)


24


Pandasのデータフレームの行の最大要素を探す

DataFrameの各行の最大要素を見つけるには、同様に max() メソッドに依存しますが、ここでは axis 引数を 1 に設定します。

もし axis が 0 の場合、 max() メソッドは各カラムの最大要素を見つけます。

一方、 axis が 1 の場合、 max() は各行の最大値を求めます。

max_elements = df.max(axis=1)
print(max_elements)


これは、予想通り、 df の各行の最大値を求めます。

0     24
1     16
2    201
3     24
dtype: int64


また、特定の行を検索したい場合は、 iloc[] を使ってアクセスすることができます。

print(df)


for row in df.index:
    print(f'Max element of row {row} is:', max(df.iloc[row]))


結果を確認しやすくするために、参考までに df を出力し、各行の max() 要素を iloc[] から取得しました。

column1  column2
0       24       17
1        9       16
2       20      201
3       24       16


Max element of row 0 is: 24
Max element of row 1 is: 16
Max element of row 2 is: 201
Max element of row 3 is: 24


Pandasのデータフレーム全体の最大要素を探す

最後に、DataFrame 全体の最大要素を見つける方法について見てみましょう。

これまで見てきたことに基づけば、これはとても簡単なはずです。

組み込みの max() メソッドを使用して、以前に作成した2つの最大要素のリスト(すべての行またはすべての列)のいずれかを渡すだけです。

これらは同じデータの2つの面なので、同じ結果が得られることが保証されています。

これにより、 df 全体の中で最も高い値を得ることができるはずです。

max_by_columns = df.max()
max_by_rows = df.max(axis=1)


df_max = max(max_by_columns)
print("Max element based on the list of columns: ", df_max)


df_max2 = max(max_by_rows)
print("Max element based on the list of rows: ", df_max2)


これは次のように出力されます。

Max element based on the list of columns:  201
Max element based on the list of rows:  201


これは予想通りであり、正しいです! 各行の最大要素のリストの最大要素は、各列の最大要素のリストの最大要素と同じであるべきで、両者はデータフレーム全体の最大要素と同じであるべきです。

結論

このチュートリアルでは、Pandas DataFrameの列、行、DataFrameインスタンス全体の最大要素を求める方法を見てきました。

タイトルとURLをコピーしました