【Python】Pandas（パンダス）ちょっとやってみた

環境メモ
⭐️Mac Book Pro(macOS Catalina)
⭐️Anaconda 4.9.2
⭐️Python 3.8.5
⭐️Jupyter Note book 6.1.6
⭐️Pandas 1.1.5

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">📊Python（Pandasパンダス）📈<br>📈データ分析📊が簡単にできるPythonのライブラリやってみた😍<br>Oracle PL/SQLをやっていれば、直感的にCSVのデータ集計ができた💕とっても便利☺️<br><br>【Python】Pandas（パンダス）ちょっとやってみた<a href="https://t.co/rphduxeNaT">https://t.co/rphduxeNaT</a><a href="https://twitter.com/hashtag/Python?src=hash&amp;ref_src=twsrc%5Etfw">#Python</a> <a href="https://twitter.com/hashtag/Pandas?src=hash&amp;ref_src=twsrc%5Etfw">#Pandas</a> <a href="https://t.co/lQIueLUpuT">pic.twitter.com/lQIueLUpuT</a></p>&mdash; non (@nonnonkapibara) <a href="https://twitter.com/nonnonkapibara/status/1345716020510560257?ref_src=twsrc%5Etfw">January 3, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## Python（Pandasパンダス）とは
データ分析が簡単にできるPythonのライブラリ。


## 環境作成
Anacondaでpandasをインストールしました。

詳細については下記を参考
【Python】AnacondaでJupyter Notebookを使ってpandasをインポートするとModuleNotFoundErrorが出るときの対処法
https://qiita.com/nonkapibara/items/b592b00eef112cb4df9d


## Pandas（パンダス）の勉強した内容
・CSVの読み込み
・CSVの内容を表示する
・CSVの件数を表示する
・縦方向に結合（join）する
・Left innser joinとRight innser join

## ４つのCSVを用意
チョコ菓子とキャンディの商品マスタのCSVを用意する
<font color="MediumVioletRed">・sweet_chocolate_master.csv</font>

![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/1898c7cb-5ea3-fc1e-5da1-bf6c97bbfde5.png)

<font color="MediumVioletRed">・sweet_candy_master.csv</font>
![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/b1e8f493-80b0-2516-39fb-6f5d6735dffb.png)

架空の店舗のお菓子の発注CSVを用意する
<font color="MediumBlue">・store_name_seven.csv</font>
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/eedd200b-aa59-b8a1-ba54-571b8e4dbba4.png)

<font color="MediumBlue">・store_name_familymart.csv</font>
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/2b1a81a5-ea02-332a-6c93-6077cfca5a39.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[1]</font>

```
# パンダスライブラリを読み込む
import pandas
# お菓子（チョコ）マスターCSVを読み込む
sweet_chocolate_master = pandas.read_csv('sweet_chocolate_master.csv')
#  お菓子（チョコ）マスターの内容を表示する
sweet_chocolate_master
```
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/168ed7d4-c8db-7eb5-dbce-e0a018d936f4.png)


## Pandas（パンダス）の実装 <font color="OrangeRed">In[2]</font>

```
# お菓子（キャンディ）マスターCSVを読み込む
sweet_candy_master = pandas.read_csv('sweet_candy_master.csv')
#  お菓子（キャンディ）マスターの内容を表示する
sweet_candy_master
```

![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/e3f20591-f75d-cbfc-ae77-59ee71e94a62.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[3]</font>

```
# チョコとキャンディのマスターを縦方向に結合（join）する
sweet_master = pandas.concat([sweet_chocolate_master,sweet_candy_master],ignore_index=True)
# 列の最大表示数を設定する
pandas.set_option('display.max_columns', 20)
# 行の最大表示数を設定する
pandas.set_option('display.max_rows', 50)
sweet_master
```

![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/9c98ec2b-e6d1-1919-fb8d-48059ccb0b38.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[4]</font>

```
# 件数
print('sweet_chocolate_master 件数:' +  str(len(sweet_chocolate_master)))
print('sweet_candy_master 件数:' +  str(len(sweet_candy_master)))
```

![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/4da042aa-b18f-0c20-e60f-2f1b24887565.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[5]</font>

```
# seven店舗
store_name_seven = pandas.read_csv('store_name_seven.csv')
store_name_seven
```

![009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/e028d3c7-0289-eeb8-be83-bdce8330fdc8.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[6]</font>

```
# familymart店舗
store_name_familymart = pandas.read_csv('store_name_familymart.csv')
store_name_familymart
```

![010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/1936a7e0-8e73-4ca7-7bc3-0006778da01f.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[7]</font>

```
# Left innser join
# 左側チョコレートマスタ、右側Seven店舗
chocolate_saven_left_join=pandas.merge(sweet_chocolate_master,store_name_seven[["sweet_id","store_id","store_name","order_count"]], on="sweet_id",how="left")
chocolate_saven_left_join
```

![011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/f3a57268-77b1-49be-31b3-79eb19917f52.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[8]</font>

```
# Right innser join
# 左側チョコレートマスタ、右側Seven店舗
chocolate_saven_right_join=pandas.merge(sweet_chocolate_master,store_name_seven[["sweet_id","store_id","store_name","order_count"]], on="sweet_id",how="right")
chocolate_saven_right_join
```

![012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/23d302a3-c5fa-0fa8-69ae-51aa793edf6b.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[9]</font>

```
# Left innser join
# 左側お菓子マスタ、右側family店舗
sweet_family_left_join=pandas.merge(sweet_master,store_name_familymart[["sweet_id","store_id","store_name","order_count"]], on="sweet_id",how="left")
sweet_family_left_join
```

![013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/97ccb8fc-35fe-8676-b79b-9e22788dbd5e.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[10]</font>

```
# Right innser join
# 左側お菓子(チョコとキャンディ結合)マスタ、右側familymart店舗
# チョコとキャンディのマスターを縦方向に結合（join）する
sweet_familymart_right_join=pandas.merge(sweet_master,store_name_familymart[["sweet_id","store_id","store_name","order_count"]], on="sweet_id",how="right")
sweet_familymart_right_join
```

![014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/6d91b43c-a123-7e54-a78c-e616b2cf361d.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[11]</font>

```
# Left joinn
# 左側Seven店舗、右側がお菓子マスタ
store_name_seven_left_join=pandas.merge(store_name_seven,sweet_master[["sweet_id","sweet_name"]], on="sweet_id",how="left")
store_name_seven_left_join
```

![015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/6ec642a3-1d1b-8066-b9de-436e9bca03e8.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[12]</font>

```
# Left joinn
# 左側familymart店舗、右側がお菓子マスタ
store_name_familymart_left_join=pandas.merge(store_name_familymart,sweet_master[["sweet_id","sweet_name"]], on="sweet_id",how="left")
store_name_familymart_left_join
```

![016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/cdf7c638-ad1b-36bc-f201-f83af4f53c92.png)

## Pandas（パンダス）の実装 <font color="OrangeRed">In[13]</font>

```
# お菓子マスタにSeven店舗とFamilyMart店舗をJoinする
# 左側がお菓子マスタで、右側がSeven店舗
sweet_saven_left_join=pandas.merge(sweet_master,store_name_seven[["sweet_id","store_id","store_name","order_count"]], on="sweet_id",how="left")
# 左側上記結果で、右側がFamilyMart店舗
sweet_store_all=pandas.merge(sweet_saven_left_join,store_name_familymart[["sweet_id","store_id","store_name","order_count"]], on="sweet_id",how="left")
sweet_store_all
```

![017.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/dd0f8707-e4d8-1fa0-f79f-e5d360439999.png)