【Pandas】簡単な英語のように使えるメソッドの紹介　no.17

![見出しを追加 (42).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/5ff0ed10-f35f-67c7-320c-5962a5715fdb.png)
こんにちは、まゆみです。

Pandasについての記事をシリーズで書いています

今回は17回目になります

『Pythonは簡単な英文のようにコードを書ける』

とよく言われますが、<font color="Red">Pandasの英語そのもののようなメソッド</font>を見つけたので、今日はそのメソッドを集めて記事を書いてみます。

色んなところで活用できるようなメソッドなので、是非最後まで読んで見てくださいね。

ではさっそく始めていきます

#.isin() メソッド

![Apple is in this box..png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/d0373567-e5b3-8a05-87d1-e67265235205.png)

このメソッドで使う上で注意点は、<font color="Red">例え文字列1つだけを引数として使いたい時も、『リスト型』にしなければいけないということです。</font>

![スクリーンショット 2021-03-22 070617.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/608a4694-9129-9f1a-f8c0-55734872657b.jpeg)
引用元：[Pandasドキュメント](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.isin.html)

[前回の記事](https://qiita.com/Mayumi_Pythonista/items/321f664fc4e9a19605d3)で使ったのと[同じデータ](https://www.kaggle.com/rturley/pet-breed-characteristics?select=dog_breed_characteristics.csv)を使って実際の使い方を示していきます

![スクリーンショット 2021-03-22 072148.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/df1bc13b-0cb2-409d-54a8-3524942ee687.jpeg)
read_csv()メソッドで読み込むと上のスクショのような感じになります

コラムGroup1の中に、『Toy』があるかどうかを.isin()メソッドで調べてみます。

![スクリーンショット 2021-03-22 072431.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/a2d3178a-b74f-4d55-3b6c-d154a8ceb60c.jpeg)
isin()メソッドの<font color="Red">引数として入れるコラム名は１つだけですが、リスト型にしました。</font>

Group1がToyになっているところがTrueとして返されます。

では、isin()の<font color="Red">引数に2つのコラム名</font>を取ってみます

![スクリーンショット 2021-03-22 072719.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/de67adbd-d930-09d7-6965-6e42153f2cf8.jpeg)

Group1コラムの値が

Toy もしくは　Sporting

のrow がTrue として返されました。

##.isin()メソッドと　ORは同じ

 ![スクリーンショット 2021-03-22 073630.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/86a77ed6-b1e5-70b6-69c3-2aa6b959d855.jpeg)

![スクリーンショット 2021-03-22 073647.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/0e69d364-5743-9e26-b8b9-870de7ac9675.jpeg)

(※2つ以上の条件があってORを使ってデータをはじき出す方法は[前回の記事](https://qiita.com/Mayumi_Pythonista/items/321f664fc4e9a19605d3#%E6%9D%A1%E4%BB%B6%E3%81%ABor%E3%82%92%E4%BD%BF%E3%81%86)に書いています)

.isin()メソッドは条件を2つ以上使う時のORと同じ結果になりますが、コードを書く量はより少なくて済みます。

#.isnull() .notnull()　メソッド
![Is there null_ (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/0733d69d-269e-9d79-9cf9-eae98869cf1d.png)


<font color="Red">.isnull()は欠損値をFalseで返し、.notnull()は欠損値をTrueで返します</font>


![スクリーンショット 2021-03-22 075841.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/f6f5d5cf-f4fe-f815-1759-6d22e588318e.jpeg)

Intelligence のコラムにいくつか欠損値がありますので、(NaNとなっているところです。)Intelligence のコラムに.isnull() .notnull()を使って実験します

![スクリーンショット 2021-03-22 081412.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/391a7121-359a-c629-487c-8313919e0166.jpeg)

.isnull() と.notnull()では逆の結果を返してくれます。

#.between() メソッド

![between.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/7cd0293c-e634-ea46-77c6-5dad49960cb2.png)

.between()メソッドでの注意点は、<font color="Red">２つの引数の値を含めた範囲が指定される</font>ということです。

例えば.between(2,5)とすると、2～5までの範囲を指定し、2も5も範囲に含みます。

コラムAvgPopPrice(子犬の価格)で500ドルから1000ドルのものの真偽を確かめてみましょう

![スクリーンショット 2021-03-22 083957.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/8ec20bac-6ad5-2615-564e-aca12f3833d1.jpeg)
1000ドルちょうどの、AffenpinscherもTrue として返されました。

![スクリーンショット 2021-03-22 082631.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/7a822d8b-b862-ac8d-fe82-5b6072e3e418.jpeg)
引用元：[Pandasドキュメント](https://pandas.pydata.org/docs/reference/api/pandas.Series.between.html)

また、このメソッドは整数だけではなく、小数点(floating number)でも、時間(.to_datetime()でdatetime オブジェクトにしたもの)の範囲でも指定する事ができます

試しに、アメフト選手のデータのなかに、選手の誕生日のデータがあるので

1985年から1990年生まれの選手

のデータをピックアップします

※年月日の比較をPandasで行うには、datetimeオブジェクトに作り替える必要がありますので、分からない方は[こちらの記事](https://qiita.com/Mayumi_Pythonista/items/8af7c687e35003687711#1-to_datetime%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89)を参考にどうぞ

![スクリーンショット 2021-03-22 085131.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/c6271811-e85b-9e03-e0c3-9137e21adae5.jpeg)

この範囲に生まれた選手のデータを表示させますね。

![スクリーンショット 2021-03-22 085640.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/128688ee-bef5-7bb5-4d2b-5edf73ae8741.jpeg)

#まとめ

今回は、簡単な英作文を作るように使えるPandas のメソッドを紹介しました。

お役に立てれば幸いです。