Python

条件に応じたデータの変換:Pandasのwhereとmaskの使い方

データ分析をしていると、「特定の条件に合ったデータだけを変換したい」という場面に出くわすことがよくありますよね。例えば、スコアが一定以上のデータだけを他の値に置き換えたいとか、特定の条件を満たすデータだけをマスクしたいといったケースです。Pandasには、こうした操作を簡単に行うための便利なメソッドとして、whereとmaskが用意されています。この記事では、Pandasのwhereとmaskメソッドを使った条件に応じたデータの変換方法について紹介します!

whereメソッドの使い方

Pandasのwhereメソッドは、指定した条件を満たす要素をそのままに、条件を満たさない要素を他の値に置き換えるために使います。言い換えると、「条件がTrueなら元の値を残し、Falseなら別の値に置き換える」という操作を簡単に行うことができるんです。

基本的なwhereの使い方

whereメソッドの基本的な使い方を見てみましょう。ここでは、スコアが80以上のデータをそのままに、それ未満のデータをNaNに置き換える例を示します。

Scoreが80以上ならそのまま、未満ならNaNに置き換える

このコードでは、Scoreが80以上のデータはそのままに、80未満のデータがNaNに置き換えられます。これにより、条件を満たすデータだけを抽出しやすくなりますね。

条件を満たさない要素を特定の値に置き換える

条件を満たさない要素をNaNではなく、特定の値に置き換えたい場合もありますよね。whereメソッドの第二引数に置き換えたい値を指定することで、これが可能になります。

このコードでは、80未満のスコアが0に置き換えられています。特定の値に一括で置き換えたいときに便利です。

maskメソッドの使い方

maskメソッドは、whereメソッドの逆の動きをするものだと思ってください。つまり、maskは「条件がTrueなら置き換え、Falseなら元の値をそのままにする」という操作を行います。これにより、特定の条件を満たすデータだけを簡単にマスクしたり、変換したりすることができます。

基本的なmaskの使い方

まずは、基本的なmaskの使い方を見てみましょう。ここでは、スコアが80未満のデータだけをNaNに置き換える例を紹介します。

このコードでは、Scoreが80未満のデータがNaNに置き換えられています。これにより、特定の条件に合うデータだけをマスクできるようになりますね。

条件を満たす要素を特定の値に置き換える

maskメソッドでも、条件を満たす要素を特定の値に置き換えることができます。これも、第二引数に置き換えたい値を指定することで可能です。

このコードでは、80未満のスコアが0に置き換えられています。条件に合ったデータを特定の値で一括して処理したいときに役立ちます。

whereとmaskの使いどころ

whereとmaskはそれぞれ異なる状況で役立ちます。

where: 条件を満たす要素をそのままにし、満たさない要素を置き換える場合に使用します。例えば、「特定の条件に合わないデータをフィルタリングしたい」場合に便利です。

mask: 条件を満たす要素を置き換え、満たさない要素をそのままにする場合に使用します。例えば、「特定の条件に合うデータを目立たせたり、マスクしたい」場合に適しています。

複数条件を使った応用例

whereやmaskは、複数の条件を組み合わせることもできます。例えば、「スコアが80以上ならそのまま、50未満なら0に、それ以外は50にする」といった複雑な変換も可能です。

このコードでは、80以上のスコアはそのまま、50未満のスコアは0に、50以上80未満のスコアは50に変換されています。複雑な条件でも、whereとmaskを組み合わせることで柔軟に対応できます。

======================================================
さらにデータサイエンスを学んでいきたいという方向けに「Pythonによるデータサイエンス」動画を提供しています。
基礎編・応用編それぞれ35時間以上の動画となっており、今なら50%OFFですので、ぜひチェックしてみてください!
>>>Pythonによるデータサイエンス基礎編
>>>Pythonによるデータサイエンス応用編

おすすめ記事

1

こんにちわ、サトシです。33歳です。 今回は、データサイエンティストの3年間に3社で働いた僕が、データサイエンティストとしての転職活動についてまとめて書きたいと思います。 これまでSE→博士研究員→ポ ...

2

お疲れさまです! 久しぶりの更新になってしまいましたが、僕が未経験からデータサイエンティストになるまでの転職活動の全記録を書き残しておきたいと思います。 僕は博士号を取得後に研究員として仕事をしていま ...

3

こんにちわ、サトシです。 今回は、企業でデータサイエンティストとして働いていた僕が、フリーランスとしてどのような手順で独立していったかについて書いていきたいと思います。 僕はSIer SE→博士過程→ ...

-Python

Copyright© さとぶろぐ , 2025 All Rights Reserved Powered by AFFINGER5.