Pandasの株価分析に使える機能を紹介(Facebook株価のデータ使用)no.6

![見出しを追加 (23).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/389da935-8a52-92ce-9def-c1e7cc3bfb43.png)

こんにちは、まゆみです。

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

今回は第6回目になります。

今まで基礎的な事を書いてきたので、今回の記事では、Pandas の便利な機能を使って

<ul>
<li>CSVデータを読み込み見やすくしたり</li>
<li>ほしいデータのみ取り出したり</li>
<li>データを並べ替えたり</li>
</ul>

してみようと思います。

今回は[data.world](https://data.world/vizwiz/facebook-historical-stock-price/workspace/file?filename=Facebook+Historical+Stock+Price.csv)さんのサイトから『Facebook』の株価のデータを使っていきたいと思います。(私自身、Facebookの株を少し保有しているので興奮します(笑))

#株価分析に役立ちそうなPandasの機能

![見出しを追加 (24).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/82d1e69e-8b0f-8db1-17e0-bf96b36fdd8d.png)

##CSVファイルの使いたい部分を指定する
```
import pandas as pd
pd.read_csv("CSVファイル名", usecols=["コラム名"], squeeze=True)
```

Pandasのread_csv()メソッドは

 <font color="Red">CSVファイル全体(DataFrame)を読み込む</font>ので、あなたが使わないデータも一緒に読み込んでしまいます。

usecols=["コラム名"]

で使いたい部分を指定しましょう

![スクリーンショット 2021-03-14 073955.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/55e74214-86ff-97d2-d06a-7a688aefc9d8.jpeg)


今回は『Close』とコラム名の付いた部分だけを取り出します(株価のそれぞれの日の終値)

そしてDataFrame をSeries に変えるために、

squeeze= True

と()内に書きます。

>※DataFrame Seriesってなにっていう人は[こちらの記事](https://qiita.com/Mayumi_Pythonista/items/a252edf67ac6ab517f15)からどうぞ。

>※squeeze って何？っていう人は、[前回の記事](https://qiita.com/Mayumi_Pythonista/items/c29197abd4af408a8d17)の1コラムだけ取り出したDataFrameをSeries にするという項目に書いています

以上の実行結果は下記のようになります。Seriesを作ることができました。

![スクリーンショット 2021-03-14 074716.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/1fadaf08-f990-6ac2-baf1-1f47a36a85a9.jpeg)



##データの最初と最後の一部だけ見てみる
Facebookの株価データの最初と最後の一部を見てみたい時には

```
.head()
.tail()
```
が使えます

![スクリーンショット 2021-03-14 075012.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/ad1804a7-6897-7673-6296-e0287ae1e74d.jpeg)

.head()  はデータの最初の5rowsを
.tail()　はデータの最後の5rowsを返してくれます

引数の値を変えれば、その数字分のrow を返してくれます。

##株価を低い順・高い順に並べる

Facebookの株を持ち続けていたらいくら儲かったか知りたい時は <font color="Red">株価を低い順に、もしくは高い順に並べる機能</font>を使ってみましょう

```
.sort_values()
```

を使うと、低い順から並べてくれます。

![スクリーンショット 2021-03-14 082024.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/7c9dfca1-05aa-a312-dac3-21c503df10f3.jpeg)

もし、株価が18ドルくらいの時に買ってほったらかしにしていたら、今頃は。。。(妄想。。。)

また、sort_values() は色々なパラメーターを取ることができます。([Pandasのドキュメント参考](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html))

sort_valuesの

```
ascending=False
```

というパラメーターの引数の値をFalse にすれば

 <font color="Red">高い順から並べてくれます</font>

###inplace パラメーターの使い方

ただこの『.sort_values()』は元々のデータを書き換えるものではありません。

 株価を高い順、もしくは低い順に並べたものを返すだけで<font color="Red">上書きするわけではありません。</font>

どういう意味か実際に例を出しながら説明します。

![スクリーンショット 2021-03-14 084046.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/73674d90-ea49-ab4c-9541-bc75fbbc4748.jpeg)

例え、引数をascending=False にして株価の高い順から並べたとしても、元々のデータをもう一度呼び出してみると株価の低い順にならんでいます。

ではデータを上書きする方法はあるのでしょうか？

![スクリーンショット 2021-03-14 084721.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/c3bf0a2c-e8dc-1c46-8b4e-2c9ed1abb18d.jpeg)

 <font color="Red">デフォルトではFalse になっているinplace = の引数をTrue に変更すれば上書き</font>をすることができます

![スクリーンショット 2021-03-14 085143.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/b78c4928-24c5-e109-fc41-f83ee0fa696d.jpeg)


#まとめ

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

Pandas ライブラリーはパワフルで色んな事ができるので、少しづつPandas について記事にしていきますね。