3
10

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-11-09

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

# データフレーム操作に関するライブラリをインポートする
import pandas as pd
# URL によるリソースへのアクセスを提供するライブラリをインポートする。
# import urllib # Python 2 の場合
import urllib.request # Python 3 の場合

「ニューヨークの大気状態観測値」のデータを読み込んでみましょう。

詳細

# ウェブ上のリソースを指定する
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 の場合
# データの読み込み
df1 = pd.read_csv('airquality.txt', sep='\t', index_col=0) 
# 読み込んだデータの確認
df1

うまく読み込めました。

次に、「好きなアイスクリームアンケート」のデータを読み込んでみましょう。

詳細

# ウェブ上のリソースを指定する
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 の場合
# データの読み込み
df2 = pd.read_csv('icecream_chosa.txt', sep='\t', index_col=0) 
df2

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

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

うまく読み込めました。

次に、「ワインの品質」のデータを読み込んでみましょう。

詳細

# ウェブ上のリソースを指定する
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 の場合
# データの読み込み
df3 = pd.read_csv('winequality-red.csv', sep='\t', index_col=0) 
df3

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

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

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

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

うまく読み込めました。

次は、「あわびのデータ」のデータを読み込んでみましょう。

詳細

# ウェブ上のリソースを指定する
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 の場合
# データの読み込み
df4 = pd.read_csv('abalone.data', sep='\t', index_col=0) 
df4

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

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

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

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

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

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

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

3
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
10