Python pandasで条件指定をしてデータを操作する:whereとmaskの活用術

この記事では、Pythonのデータ解析ライブラリであるpandasのwhereとmask関数を用いて条件に応じた値の代入方法を具体的に解説します。

Pythonのpandasで、条件に応じてデータフレームの値を変更する方法を教えてもらえますか?

pandasにはwhereやmaskという便利な関数があり、これらを使えば条件に合わせてデータフレームの値を簡単に操作することができますよ。

目次

受講者数No.1!初心者からプロへ導く信頼のスクール

    短期間で習得可能!未経験から実践力を磨く充実のプログラム

    今なら無料相談でAmazonギフトカードがもらえる!

    pandasのwhereとmask関数とは?

    pandasのwhereとmask関数は、データフレームに対する条件付きの操作を行うための便利なツールです。

    1. where関数:
      • pandasのwhere関数は、指定した条件がTrueである場合、元の値をそのまま保持します。一方、指定した条件がFalseである場合、指定した新しい値に置き換えます。

    例えば、以下のようなデータフレームがあるとします。

    import pandas as pd
    
    df = pd.DataFrame({
        'A': [1, 2, 3, 4, 5],
        'B': [5, 4, 3, 2, 1]
    })

    ここで、各値が3より大きいかどうかを条件としてwhere関数を適用し、3以下の値を’low’という文字列に置き換えてみましょう。

    df.where(df > 3, 'low')

    この操作により、値が3より大きいセルはそのままとなり、3以下のセルは’low’という文字列に置き換わります。

    1. mask関数:
      • 一方で、mask関数はwhere関数とは逆の動作をします。つまり、指定した条件がTrueである場合、指定した新しい値に置き換えます。一方、指定した条件がFalseである場合、元の値をそのまま保持します。

    先ほどのデータフレームに対して、同じ条件と値をmask関数で適用してみましょう。

    df.mask(df > 3, 'high')

    この操作により、値が3より大きいセルは’high’という文字列に置き換わり、3以下のセルはそのままとなります。

    これらの関数を使うことで、データフレームに対する条件付きの操作を簡単に行うことができます。具体的な操作は、実際のデータと目的に応じて適切に選択・利用することが重要です。

    where関数の使い方

    Pythonのpandasライブラリのwhere関数は、データフレームに対する条件付きの操作を行うための便利な関数です。where関数は、指定した条件がTrueである場合には元の値をそのまま保持し、条件がFalseである場合には指定した新しい値に置き換えます。

    以下に、具体的な使い方を示します。

    まず、次のようなデータフレームを作成します。

    import pandas as pd
    
    df = pd.DataFrame({
        'A': [1, 2, 3, 4, 5],
        'B': [5, 4, 3, 2, 1]
    })

    このデータフレームに対して、各値が3より大きいかどうかを条件としてwhere関数を適用し、3以下の値を’low’という文字列に置き換えてみましょう。

    df_where = df.where(df > 3, 'low')
    print(df_where)

    上記のコードを実行すると、以下のような出力が得られます。

         A    B
    0  low    5
    1  low    4
    2  low  low
    3    4  low
    4    5  low

    この結果からわかるように、各セルの値が3より大きい場合(条件がTrueの場合)はそのままの値が保持され、3以下の場合(条件がFalseの場合)は’low’という文字列に置き換わっています。

    このようにwhere関数を使うことで、データフレームに対する条件付きの操作を簡単に行うことができます。具体的な操作は、実際のデータと目的に応じて適切に選択・利用することが重要です。

    mask関数の使い方

    Pythonのpandasライブラリのmask関数も、データフレームに対する条件付きの操作を行うための便利な関数です。ただし、where関数とは逆に、mask関数は指定した条件がTrueである場合に指定した新しい値に置き換え、条件がFalseである場合には元の値をそのまま保持します。

    以下に、具体的な使い方を示します。

    まず、次のようなデータフレームを作成します。

    import pandas as pd
    
    df = pd.DataFrame({
        'A': [1, 2, 3, 4, 5],
        'B': [5, 4, 3, 2, 1]
    })

    このデータフレームに対して、各値が3より大きいかどうかを条件としてmask関数を適用し、3より大きい値を’high’という文字列に置き換えてみましょう。

    df_mask = df.mask(df > 3, 'high')
    print(df_mask)

    上記のコードを実行すると、以下のような出力が得られます。

       A     B
    0  1  high
    1  2  high
    2  3     3
    3  high  2
    4  high  1

    この結果からわかるように、各セルの値が3より大きい場合(条件がTrueの場合)は’high’という文字列に置き換わり、3以下の場合(条件がFalseの場合)はそのままの値が保持されています。

    このようにmask関数を使うことで、データフレームに対する条件付きの操作を簡単に行うことができます。具体的な操作は、実際のデータと目的に応じて適切に選択・利用することが重要です。

    whereとmaskの使い方の違い

    以下の表はwhere関数とmask関数の違いをまとめたものです。

    条件がTrueの時条件がFalseの時
    where値をそのまま指定した値を代入
    mask指定した値を代入値をそのまま
    whereとmaskの使い方の違い

    リスキリングでキャリアアップしてみませんか?

    リスキリング(学び直し)は、経済産業省が推奨しており、

    今だけ、最大70%のキャッシュバックを受けることができます。

    リスキリング 給付金が出るスクール紹介

    最大70%の給付金が出るおすすめのプログラミングスクール!

    国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

    興味のある方はすぐに確認しましょう。

    まとめ

    今回はpandasのwhereとmask関数の使い方を解説しました。

    • pandasのwhere関数は、指定した条件がTrueのセルをそのままにし、Falseのセルに指定した値を代入します。
    • mask関数はwhere関数とは逆で、条件がTrueのセルに指定した値を代入し、Falseのセルをそのままにします。
    • where関数とmask関数を適切に使い分けることで、より効率的なデータ操作が可能になります。

    pandasのwhereとmask関数を使ってデータ操作ができそうです。

    これらの関数をマスターすることで、Pythonでのデータ解析が一段と便利になります。ただし、適切な関数を適切な場所で使うことが大切です。ぜひ、where関数とmask関数の違いを覚えて、Pythonのデータ分析に活用してみてください。

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