[pandas].csvファイル読み込み、表示方法

今回はpandasを用いて.csvファイルからの読み込み,出力についてまとめました。
まだまだ未熟者ですので、不備や間違えている点があれば指摘していただけると幸いです。  

### pandasとは
> pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool,
built on top of the Python programming language.  
> pandasは高速, 強力, 柔軟, そして簡単に使用できるオープンソースのデータ分析やデータ操作ツールです。python上に構築されています。  
> [pandas - Python Data Analysis Library](https://pandas.pydata.org/)  

# 準備
### 環境

| 名称     |       バージョン |
|:-----------------|------------------:|
| macOS Catalina   |           10.15.3 |
| pandas  |            0.25.1 |

### 各ライブラリのインストール

``` bash
$pip3 install pandas
```
### 今回使用するsample.csv
``` :sample.csv
name,HP,MP,ATK,DEF,INT
A,83,89,76,97,76
B,66,93,75,88,76
C,100,84,96,82,94
D,60,73,63,52,70
E,92,62,84,80,78
F,96,92,94,92,90
```
上記のファイルをこれから作成するソースコードと同じフォルダに入れて実行します。

# csvファイルの読み込み

#### 書式
``` python
import pandas as pd

#csvファイルの読み込み
df = pd.read_csv("file_name.csv")
```
##### 説明
``` python
import pandas as pd
```
pandasをpdという名称で読み込んでいる  
こうすることで

``` python
import pandas
df = pandas.reac_csv("file_name.csv")
```
ではなく以下のように短く記述してpandasを使用することができる.

``` python
import pandas as pd
df = pd.reac_csv("file_name.csv")
```

#### 実行ファイル
```python
import pandas as pd 

df = pd.read_csv("sample.csv")
print(df)

```

#### 実行結果
```
  name   HP  MP  ATK  DEF  INT
0    A   83  89   76   97   76
1    B   66  93   75   88   76
2    C  100  84   96   82   94
3    D   60  73   63   52   70
4    E   92  62   84   80   78
5    F   96  92   94   92   90
```

# 列を指定して表示
#### 書式
```
#1つの列を指定
df["col_name"]

#2つの列を指定
df[["col_name1", "col_name2"]]
```

#### 実行ファイル
``` python
import pandas as pd 

df = pd.read_csv("sample.csv")

#列を指定して出力
print("---select column")
print(df["name"])
print("---")
#列を複数指定して出力
print("---select multiple columns")
print(df[["name","HP"]])
print("---")


```
#### 実行結果
```
---select column
0    A
1    B
2    C
3    D
4    E
5    F
Name: name, dtype: object
---
---select multiple columns
  name   HP
0    A   83
1    B   66
2    C  100
3    D   60
4    E   92
5    F   96
---
```


# 行を指定して表示
#### 書式
```
#1つの行を指定
df.loc[row_number]

#2つの行を指定
df[[row_number1, row_number2]]
```

#### 実行ファイル
``` python
import pandas as pd 

df = pd.read_csv("sample.csv")

#行を指定して出力
print("---select row")
print(df.loc[0])
print("---")
#行を複数指定して出力
print("---select multiple rows")
print(df.loc[[0,2]])
print("---")
```
#### 実行結果
``` 
---select row
name     A
HP      83
MP      89
ATK     76
DEF     97
INT     76
Name: 0, dtype: object
---
---select multiple rows
  name   HP  MP  ATK  DEF  INT
0    A   83  89   76   97   76
2    C  100  84   96   82   94
---
```

# １つの要素データを指定
#### 書式
``` python
df.loc[row_number]["col_name"]
```

#### 実行ファイル

``` python
import pandas as pd 

df = pd.read_csv("sample.csv")

print("---select one element")
print(df[2][name])
print("---")
```
#### 実行結果
```
--- select one element
C
---
```

# 条件にあうデータの表示
#### 実行ファイル
``` python
import pandas as pd 

df = pd.reac_csv("sample.csv")
data_atk = df[df["ATK"] > 85]
print("---ATK > 85")
print(data_atk)
print("---")
```
#### 実行結果
```
---ATK > 85
  name   HP  MP  ATK  DEF  INT
2    C  100  84   96   82   94
5    F   96  92   94   92   90
---
```

# ソートして表示する
#### 書式
```
#昇順(小さいものほど先にくる)
df = df.sort_values("col_name")

#降順(大きいものほど先にくる)
df = df.sort_values("col_name", ascending=False)
```
> ascending:のぼっていく、上昇的な
>[ascending とは 意味・読み方・表現 | Weblio英和辞書](https://ejje.weblio.jp/content/ascending)

#### 実行ファイル
``` python
import pandas as pd
df = pd.reac_csv("sample.csv")

HP_asc = df.sort_values("HP")
print("---HP ascending")
print(HP_asc)
print("---")

HP_desc = df.sort_values("HP", ascending=False)
print("---HP descending")
print(HP_desc)
print("---")

```

#### 実行結果
```
---HP ascending
  name   HP  MP  ATK  DEF  INT
3    D   60  73   63   52   70
1    B   66  93   75   88   76
0    A   83  89   76   97   76
4    E   92  62   84   80   78
5    F   96  92   94   92   90
2    C  100  84   96   82   94
---
---HP descending
  name   HP  MP  ATK  DEF  INT
2    C  100  84   96   82   94
5    F   96  92   94   92   90
4    E   92  62   84   80   78
0    A   83  89   76   97   76
1    B   66  93   75   88   76
3    D   60  73   63   52   70
---
```

# 転置して表示
#### 実行ファイル
``` python
import pandas as pd 

df = pd.read_csv("sample.csv")
print("---Transposition")
print(df.T)
print("---")
```
#### 実行結果
``` 
---Transposition
       0   1    2   3   4   5
name   A   B    C   D   E   F
HP    83  66  100  60  92  96
MP    89  93   84  73  62  92
ATK   76  75   96  63  84  94
DEF   97  88   82  52  80  92
INT   76  76   94  70  78  90
---
```

# listに変換して表示
#### 実行ファイル  
``` python
import pandas as pd 

df = pd.read_csv("sample.csv")

print("---list")
print(df.values)
print("---")
```

#### 実行結果
```
---list
[['A' 83 89 76 97 76]
 ['B' 66 93 75 88 76]
 ['C' 100 84 96 82 94]
 ['D' 60 73 63 52 70]
 ['E' 92 62 84 80 78]
 ['F' 96 92 94 92 90]]
---
```

# 参考文献
この記事は以下の情報を参考にして執筆しました。

- [Python2年生 スクレイピングのしくみ](https://www.amazon.co.jp/Python2%E5%B9%B4%E7%94%9F-%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF-%E4%BD%93%E9%A8%93%E3%81%97%E3%81%A6%E3%82%8F%E3%81%8B%E3%82%8B%EF%BC%81%E4%BC%9A%E8%A9%B1%E3%81%A7%E3%81%BE%E3%81%AA%E3%81%B9%E3%82%8B%EF%BC%81-%E6%A3%AE-%E5%B7%A7%E5%B0%9A-ebook/dp/B07W2ZNG8Z)
- [pandas - Python Data Analysis Library](https://pandas.pydata.org/)