Pandas.DataFrame.minの使い方:サンプルコード付き

2024-04-02

pandas.DataFrame.min() は、DataFrameの最小値を取得するための関数です。

使い方

  • 基本的な使い方
df.min()

このコードは、DataFrameの全ての列の最小値を含むSeriesを返します。

  • 列指定
df['col1'].min()

このコードは、列col1の最小値のみを返します。

  • 軸指定
df.min(axis=1)  # 各行の最小値
df.min(axis=0)  # 各列の最小値

axis=1を指定すると、各行の最小値を含むSeriesを返します。axis=0を指定すると、デフォルトと同じく各列の最小値を含むSeriesを返します。

  • オプション

min()関数には、以下のオプションがあります。

  • skipna=True: 欠損値を無視する
  • numeric_only=True: 数値型のみを対象とする
df.min(skipna=True)  # 欠損値を無視
df.min(numeric_only=True)  # 数値型のみを対象

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, np.nan], 'C': ['a', 'b', 'c']})

# 全ての列の最小値
print(df.min())

# 列 'B' の最小値
print(df['B'].min())

# 各行の最小値
print(df.min(axis=1))

# 各列の最小値 (欠損値を無視)
print(df.min(axis=0, skipna=True))

出力

A    1
B    4
C    a
dtype: object
4
0    1
1    4
2    a
dtype: object
4
B    4
C    a
dtype: object


pandas.DataFrame.min のサンプルコード

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

# 全ての列の最小値
print(df.min())

# 出力
# A    1
# B    4
# C    7
# dtype: int64

列指定

# 列 'B' の最小値
print(df['B'].min())

# 出力
# 4

軸指定

# 各行の最小値
print(df.min(axis=1))

# 出力
# 0    1
# 1    4
# 2    7
# dtype: int64

# 各列の最小値
print(df.min(axis=0))

# 出力
# A    1
# B    4
# C    7
# dtype: int64

オプション

# 欠損値を含む列の最小値 (欠損値は無視)
df['D'] = [1, np.nan, 3]

print(df.min(skipna=True))

# 出力
# A    1.000000
# B    4.000000
# C    7.000000
# D    1.000000
# dtype: float64

# 数値型のみの列の最小値
print(df.min(numeric_only=True))

# 出力
# A    1
# B    4
# D    1
# dtype: int64

グループごとの最小値

# グループ 'G' ごとの各列の最小値
print(df.groupby('G').min())

# 出力
#        A  B  C
# G
# 1  1.000000  4  7
# 2  2.000000  5  8
# 3  3.000000  6  9

条件付きの最小値

# 'A' 列が 2 より大きい行の 'B' 列の最小値
print(df[df['A'] > 2].min()['B'])

# 出力
# 5

時系列データの最小値

# 時系列データの過去 3 日間の最小値
df = pd.DataFrame({'Date': pd.to_datetime(['2023-03-08', '2023-03-09', '2023-03-10', '2023-03-11']), 'Value': [10, 9, 8, 7]})

print(df.set_index('Date')['Value'].rolling(3).min())

# 出力
# Date
# 2023-03-08    10
# 2023-03-09     9
# 2023-03-10     8
# 2023-03-11     7
# Name: Value, dtype: int64

これらのサンプルコードは、pandas.DataFrame.min の使い方を理解するのに役立ちます。



pandas.DataFrame.min 以外の方法

比較演算子

# 全ての列の最小値
min_value = df.values.min()

# 列 'B' の最小値
min_value = df['B'].min()

# 各行の最小値
min_values = df.min(axis=1)

# 各列の最小値
min_values = df.min(axis=0)

NumPy の min 関数

# 全ての列の最小値
min_value = np.min(df.values)

# 列 'B' の最小値
min_value = np.min(df['B'])

# 各行の最小値
min_values = np.min(df, axis=1)

# 各列の最小値
min_values = np.min(df, axis=0)

最小値を保持する列を追加

df['min_value'] = df.min(axis=1)

# 出力
#   A  B  C  min_value
# 0  1  4  7         1
# 1  2  5  8         2
# 2  3  6  9         3

これらの方法は、pandas.DataFrame.min よりも高速に動作する場合があります。ただし、コードの可読性が低下する場合もあります。

特殊なケース

  • グループごとの最小値: groupby().min()
  • 条件付きの最小値: loc[]query() を使用
  • 時系列データの最小値: rolling().min()

これらの特殊なケースには、専用の関数やメソッドを使用する方が効率的です。




【完全ガイド】pandasで時系列データのオフセット設定:Tick.n、DateOffset、その他の方法

pandas. tseries. offsets. Tick. n は、時系列データのオフセットを設定するために使用されるクラスです。これは、pandas ライブラリの時系列モジュールの一部であり、データフレームのインデックスを調整し、異なる時間間隔のデータを比較できるようにします。



pandas Data offsets: CustomBusinessDay.is_year_startの使い方

概要:CustomBusinessDay は、祝日などを除いた営業日ベースの日付オフセットを表すクラスです。is_year_start は、CustomBusinessDay オブジェクトを受け取り、その日付が その年の最初の営業日 かどうかを判定します。 *判定は、以下の条件に基づいて行われます。 日付がその年の1月1日であること 日付がその年の最初の営業日であること


【完全ガイド】 pandas.tseries.offsets.YearBegin で年単位のオフセット計算をマスターしよう!

主な用途年始に基づいて日付を操作する年度末などの特定の日付を取得するカレンダーに基づいてオフセットを計算するYearBegin オブジェクトは、以下の要素で構成されます。offset: オフセットの値。正の値の場合は基準日以降、負の値の場合は基準日以前の日付を指します。


Pandas Data Offsets:BusinessDay.normalize メソッドの完全ガイド

Pandas の Data Offsets は、日付や時間軸データを操作するための便利なツールです。BusinessDay は、営業日ベースで日付をオフセットするための機能です。BusinessDay. normalize は、BusinessDay オフセットを正規化し、午前0時0分0秒に揃えるためのメソッドです。


Pandasで営業日オフセットを扱う: BusinessHour.normalize 完全解説

pandas. tseries. offsets. BusinessHour. normalizeは、BusinessHourオフセットを正規化するために使用されます。これは、オフセットが営業日の開始時刻に丸められることを意味します。引数normalize: Trueの場合、オフセットは営業日の開始時刻に丸められます。Falseの場合、オフセットは変更されません。



pandas.read_sas vs その他の方法

引数filepath: 読み込む SAS データファイルのパスformat: SAS データファイルのフォーマット 'xport': XPORT フォーマット 'sas7bdat': SAS 7BDAT フォーマット'xport': XPORT フォーマット


【初心者向け】pandasでカテゴリカルデータ分析を制覇!「pandas.CategoricalDtype」のしくみと使い方を分かりやすく解説

pandas. CategoricalDtype は、カテゴリカルデータ(有限なカテゴリを持つデータ)を効率的に扱うために pandas ライブラリが提供するデータ型です。通常の文字列型と異なり、カテゴリカルデータの特性を考慮したさまざまな機能を提供します。


Pandas Resamplingの基本的な使い方

pandas. core. resample. Resampler. aggregate は、以下の機能を提供します。リサンプリング: データを異なる時間間隔に変換します。例えば、1秒間隔のデータを1分間隔に変換したり、1日ごとのデータを1ヶ月ごとのデータに変換したりできます。


Pandas DataFrame の plot.hexbin メソッドで六角形プロットを作成する方法

引数x: 横軸のデータy: 縦軸のデータkwargs: オプション引数オプション引数gridsize: 六角形のビンのサイズcmap: カラーマップmincnt: ビンに含まれるデータポイントの最小数linewidths: ビンの境界線の太さ


Pandas Series オブジェクトのインデックスを sort_index メソッドでソートする

メソッド名: sort_index引数: level: ソートするインデックスレベルを指定します。デフォルトは None で、すべてのレベルをソートします。 ascending: True の場合は昇順、False の場合は降順にソートします。デフォルトは True です。 inplace: True の場合は元の Series オブジェクトを書き換えます。False の場合は新しい Series オブジェクトを返します。デフォルトは False です。