タブ区切りデータ、コンマ区切りデータ等の読み込み


# タブ区切りデータ、コンマ区切りデータ等の読み込み


```python
# データフレーム操作に関するライブラリをインポートする
import pandas as pd
```


```python
# URL によるリソースへのアクセスを提供するライブラリをインポートする。
# import urllib # Python 2 の場合
import urllib.request # Python 3 の場合
```

### __「ニューヨークの大気状態観測値」__のデータを読み込んでみましょう。
（<a href="https://qiita.com/maskot1977/items/453eddf5aa154c04668c">詳細</a>）


```python
# ウェブ上のリソースを指定する
url = 'https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/airquality.txt'
# 指定したURLからリソースをダウンロードし、名前をつける。
# urllib.urlretrieve(url, 'airquality.txt') # Python 2 の場合
urllib.request.urlretrieve(url, 'airquality.txt') # Python 3 の場合
```


```python
# データの読み込み
df1 = pd.read_csv('airquality.txt', sep='\t', index_col=0) 
```


```python
# 読み込んだデータの確認
df1
```

うまく読み込めました。

### 次に、__「好きなアイスクリームアンケート」__のデータを読み込んでみましょう。
（<a href="https://qiita.com/maskot1977/items/453eddf5aa154c04668c">詳細</a>）


```python
# ウェブ上のリソースを指定する
url = 'https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt'
# 指定したURLからリソースをダウンロードし、名前をつける。
# urllib.urlretrieve(url, 'icecream_chosa.txt') # Python 2 の場合
urllib.request.urlretrieve(url, 'icecream_chosa.txt') # Python 3 の場合
```


```python
# データの読み込み
df2 = pd.read_csv('icecream_chosa.txt', sep='\t', index_col=0) 
```


```python
df2
```

上の方法では、「好きなアイスクリームアンケート」のデータがうまく読み込めていません。原因は、実際のデータ区切り文字が「 」（空白）なのに、データの読み込み時に「sep='\t'」（データ区切り文字はタブ）と指定したからです。では改めて、データ区切り文字に空白を指定して読み込んでみましょう。


```python
# データの読み込み
df2 = pd.read_csv('icecream_chosa.txt', sep='\s+', index_col=0) 
```


```python
df2
```

うまく読み込めました。

### 次に、__「ワインの品質」__のデータを読み込んでみましょう。
（<a href="https://qiita.com/maskot1977/items/453eddf5aa154c04668c">詳細</a>）


```python
# ウェブ上のリソースを指定する
url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv'
# 指定したURLからリソースをダウンロードし、名前をつける。
# urllib.urlretrieve(url, 'winequality-red.csv') # Python 2 の場合
urllib.request.urlretrieve(url, 'winequality-red.csv') # Python 3 の場合
```


```python
# データの読み込み
df3 = pd.read_csv('winequality-red.csv', sep='\t', index_col=0) 
```


```python
df3
```

上の方法では、「ワインの品質」のデータがうまく読み込めていません。原因は、実際のデータ区切り文字が「;」（セミコロン）なのに、データの読み込み時に「sep='\t'」（データ区切り文字はタブ）と指定したからです。では改めて、データ区切り文字にセミコロンを指定して読み込んでみましょう。


```python
# データの読み込み
df3 = pd.read_csv('winequality-red.csv', sep=';', index_col=0) 
```


```python
df3
```

うまく読み込めたように見えるかもしれませんが、不十分です。第１列目（いちばん左）のデータが、インデックス番号として取り扱われています。このデータにはインデックス番号が指定されていませんので、次のようにして読み込みましょう。


```python
# データの読み込み
df3 = pd.read_csv('winequality-red.csv', sep=';') 
```


```python
df3
```

うまく読み込めました。

### 次は、__「あわびのデータ」__のデータを読み込んでみましょう。
（<a href="https://qiita.com/maskot1977/items/453eddf5aa154c04668c">詳細</a>）


```python
# ウェブ上のリソースを指定する
url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data'
# 指定したURLからリソースをダウンロードし、名前をつける。
# urllib.urlretrieve(url, 'abalone.data') # Python 2 の場合
urllib.request.urlretrieve(url, 'abalone.data') # Python 3 の場合
```


```python
# データの読み込み
df4 = pd.read_csv('abalone.data', sep='\t', index_col=0) 
```


```python
df4
```

上の方法では、「あわびのデータ」がうまく読み込めていません。原因は、実際のデータ区切り文字が「,」（コンマ）なのに、データの読み込み時に「sep='\t'」（データ区切り文字はタブ）と指定したからです。では改めて、データ区切り文字にコンマを指定して読み込んでみましょう。


```python
# データの読み込み
df4 = pd.read_csv('abalone.data', sep=',', index_col=0) 
```


```python
df4
```

うまく読み込めたように見えるかもしれませんが、不十分です。第１列目（いちばん左）のデータが、インデックス番号として取り扱われています。このデータにはインデックス番号が指定されていませんので、次のようにして読み込みましょう。


```python
# データの読み込み
df4 = pd.read_csv('abalone.data', sep=',') 
```


```python
df4
```

うまく読み込めたように見えるかもしれませんが、不十分です。第１行目（いちばん上）のデータが、ヘッダ行として取り扱われています。このデータにはヘッダ行が指定されていませんので、次のようにして読み込みましょう。


```python
# データの読み込み
df4 = pd.read_csv('abalone.data', sep=',', header=None) 
```


```python
df4
```

これで、うまくデータを読み込めました。