Pythonでこんな悩みはありませんか?
「Pythonで欲しいデータのみを抽出したい、、しかしやり方がわからない」
こんなお悩みを解決します。
結論をお話しするとpythonのisin()メソッドを使用することで欲しいデータのみを抽出できます。
今回の記事では、下記2点を解説します。
-
- isin()メソッドは具体的に何をしているのか?
- isin()メソッドを使って欲しいデータを抽出する方法
それでは解説します。
isin()メソッドは何をしているのか?
「タイタニック予測問題のデータ」を使って解説します。
「タイタニック予測問題」のtrainデータをdfとして読み込みます。dfは12個のカラムから構成され、891個のデータが格納されています。
isin()メソッドを使った場合、その返り値は「bool型」を返します。True or Falseと表記されるやつです。
isin()メソッドを使って、dfのSex列を男性(True)or 女性(False)と表示してみます。
dfの’Sex’列がmaleのデータは全てTrueになっていることがわかります。
このようにisin()メソッドを用いることで「bool型」に変換することができます。
そして、isin()メソッドを使用して「bool型」に変換することで欲しいデータを抽出できます。
isin()メソッドを使って欲しいデータを抽出する方法
dfから男性のみのデータを抽出する場合を考えてみましょう。
「bool型」を活用して、df[男性の場合はTrue、それ以外はFalse]のように記載できれば男性のみのデータを抽出できます。
‘Sex’列が男性かどうか「bool型」で表記するコードは、 df[‘Sex’].isin([‘male’]) です。
これをdf[ ]で囲めばいいので、
df[df[‘Sex’].isin([‘male’])] とコードを書けばOKです。
dfの中から’Sex’列が’male’となっているデータを抽出することができました。
今回は’Sex’列が’male’という1個の条件でdfの中からデータを抽出しましたが、
1個の要素だけでなく、複数要素でデータを抽出することもできます。
isin()メソッドを用いて複数要素で抽出する場合
dfのEmbarkedカラムの中には’S’、’C’、’Q’の3つが入っています。
dfからEmbarkedカラムが’C’、’Q’であるデータのみを抽出する場合を考えてみましょう。
dfからEmbarkedカラムが’C’、’Q’であるデータのみを抽出する場合には、isin([ ])メソッドの[ ]の中に[‘C’,’Q’]と2個記載すればOKです。
Embarked列の中が’C’、’Q’のみになっていることが確認できるかと思います。
複数あればisin([ ])メソッドの中に、複数記載すればOKです。
今回はisin()メソッドを用いてPandas DataFrameから欲しいデータのみを抽出する方法を解説しました。
Pandas DataFrameでデータを加工することは非常に多いと思いますので参考になれば幸いです。
また下記記事で、pandasをまとめていますので良ければご活用ください。
✅ 機械学習・pythonの「勉強」について知りたい人は下記記事もお勧め
仕事で活用するための機械学習、pythonの「勉強」について解説しています。
機械学習の独学は勉強することが多く、特に挫折しがちです。。
機械学習を完全独学した私が、「社会で使える機械学習スキル」を最短で得るための勉強・勉強法について書いていますので是非読んで見てください。
皆さんの機械学習の勉強がさらに進み、理解が深まることを願っています。