【Pandas】データの計算に便利なメソッドを集めてみた　no.9

![見出しを追加 (28).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/aa07accf-eaae-042c-b7e6-a8a2721bef4c.png)
こんにちは、まゆみです。

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

今回の記事は第9回目になります。

今回はPandasのメソッドの中でも、<font color="Red">データの計算をするのに便利なメソッド</font>を集めてみました。

計算をするメソッドは他にもたくさんありますが、ベーシックなものだけを集めてみました。


ただ『ベーシック』と言っても、

<font color="Red">あなたがカスタマイズした計算をさせるにはどのようなメソッドを使えば良いのか？</font>

というところまで踏み込んで書いていますので、是非最後まで読んでみてくださいね。


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

#今回使うデータ
![見出しを追加 (29).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/a3b947f1-340a-4c48-7e90-09b222f516b8.png)

[data.world](https://data.world/)さんのサイトで見つけた[Facebookの株価のデータ](https://data.world/vizwiz/facebook-historical-stock-price)を使っていきます

※2012年から2021年までの株価の変遷のデータです。


>[CSVファイルの読み込み方が分からない](https://qiita.com/Mayumi_Pythonista/items/c29197abd4af408a8d17)

>[DataFrame からSeriesを作るやり方が分からない](https://qiita.com/Mayumi_Pythonista/items/788af7b3f8bd2658f6f2)

という人は上記の項目がそれぞれリンクになっていますので、クリックしてアクセスしてみてください。

#count()
![スクリーンショット 2021-03-15 125128.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/1527a096-6aec-90fe-598f-2dca8cb5e7d7.jpeg)


Series の中で<font color="Red">有効な数字</font>が書かれたアイテム数を返す。

今回使ったデータは値が欠損している部分がないので、row の数と.count()ではじき出した値は一緒です。

※pythonのlen()との違いは、len() は値が抜けて『nan』などなっていても、それも含めて数えられますが、<font color="Red">.count()は有効な物だけ</font>を数えて値を返します。

#sum()
![スクリーンショット 2021-03-15 125552.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/22ac72f2-bdb0-ce12-d68d-f20fb35551bd.jpeg)


sum()は簡単ですね。

全ての項目を足したものです。

#mean()
![スクリーンショット 2021-03-15 125834.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/d2d28ec1-efdd-df65-7569-bc6bd1ea40fa.jpeg)

mean()は平均値のことです。

(全ての項目を足したもの)　/  (項目数)　になります

#median()

![見出しを追加 (30).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/406742ac-0d40-f5d1-0ae1-c986ebf65a0f.png)

![スクリーンショット 2021-03-15 130946.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/612b2720-16e9-c639-8abe-60ce4b484413.jpeg)


中央値になります。

中央値とは、

アイテムを小さい物から順に、もしくは大きい物から順番に並べた時に両端から等しい距離にある点の値のことを言います。


#min(), max()
![スクリーンショット 2021-03-15 131349.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/4c861dd2-61d9-6ddb-78f5-30fbad2ea96d.jpeg)


min()はデータの中の最小値を、max()はデータの中の最大値を返してくれます

Facebookの株価は約17倍になっているんですね。。。(溜息。。。)



#describe()
![スクリーンショット 2021-03-15 131717.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/eb167d8c-b9bd-da66-aa5e-918cbf755e7a.jpeg)

 
describe()は今まで一つづつ説明してきたメソッドの役割を全部一気にやってくれるような便利なメソッドです。

#value_counts()
![見出しを追加 (31).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/0e1b28ec-ae63-cdfe-8742-4576d9409cfc.png)

value_counts() はデータの中でそれぞれのvalue がいくつ含まれているかの値を返してくれます

株価のデータでは株価は毎日違っているので、このメソッドを使うことはないでしょうが。。。

例えば、以前に[こちらの記事](https://qiita.com/Mayumi_Pythonista/items/c29197abd4af408a8d17)で

<font color="Red">タイタニック号事件で亡くなった人と生存者の数</font>

を数えてみました。(0が亡くなった、1が生存しているで表されている)

このような場合に

value_counts()

は便利だと思います

#apply()

ではFacebook の株価のデータに戻って話を進めていきますね。

Facebookの株価の歴史を見てFacebook の株価が

>100ドル以下なら『買え！』

>100ドルから250ドルなら『待て』

>250ドル以上なら『売れ！』


と表示したいとなったらどうしたら良いでしょうか？

そんな機能のあるPandas のメソッドはないので、<font color="Red">あなたがカスタマイズします。</font>

![スクリーンショット 2021-03-15 134621.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/e7b8ce6d-0827-8008-c7fe-dc0156d72b59.jpeg)

引用元：[Pandasドキュメント](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.apply.html)

apply() メソッドのパラメーターfunc はあなたの作った関数を引数に取ることができます。

python の関数を作り、その関数をFacebookの株価の値で呼び出してみました。


![スクリーンショット 2021-03-15 135845.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/7a9ddc02-5e16-d886-49f3-894976edf123.jpeg)

ちなみに私は投資家でもなんでもないので、250ドル以上になれば『売れ！』とかは適当に決めた基準なので、そこはご理解くださいませ。<(_ _)>

#まとめ

今回の記事はこれくらいで終わりにします。

今回の記事では、データの計算に使えそうなメソッドを集めてみました。

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