ゆきばた のBlog

備忘録と備忘録。あと備忘録。

Pandas の データ読み込みサンプル一覧(csv, tsv, オプション)

CSVデータなどのファイルからデータを読み込み DataFrame に格納する方法と
そのオプションをまとめる。

こんな感じのデータを用意

No team Number name kana position born
1 Swallows 1 Yamada 山田 内野手 1992/7/16
2 Eagles 3 Asamura 浅村 内野手 1990/11/12
3 Carp 4 Kikuchi 菊池 内野手 1990/3/11
4 Giants 6 Sakamoto 坂本 内野手 1988/12/14
5 Fighters 8 Kondo 近藤 外野手 1993/8/9
6 Carp 51 Suzuki 鈴木 外野手 1994/8/11
7 Giants 10 Kobayashi 小林 捕手 1989/6/7
8 Eagles 11 Kishi 投手 1984/12/4
9 Baysters 19 Yamasaki 山崎 投手 1992/10/2
10 Buffaloes 43 Yamamoto 山本 投手 1998/8/17

 

まずは基本形

import pandas as pd

# Data 読み込み
df_data = pd.read_csv('./input/baseball.csv')

# Data 確認
df_data.head()
f:id:yukibata:20200726230405p:plain
df_data.head()

 

「ファイル形式」を指定したい

csv ファイル

df_data = pd.read_csv('./input/baseball.csv')
df_data.head()

tsv ファイル

df_data = pd.read_csv('./input/baseball.tsv', delimiter='\t')
df_data.head()

Excel ファイル

df_data = pd.read_excel('./input/baseball.xlsx', sheet_name='Sheet1')
df_data.head()

※ sheet_name を指定しない場合は、先頭のシート

 

「文字コード」を指定したい

UTF-8

df_data = pd.read_csv('./input/baseball.csv', encoding='utf_8')
df_data.head()

shift_jis

df_data = pd.read_csv('./input/baseball.csv', encoding='shift_jis')
df_data.head()

cp932

df_data = pd.read_csv('./input/baseball.csv', encoding='cp932')
df_data.head()

 

「行」の操作をしたい

Header を無視
Headerのないファイルに使用します。
Headerがあるファイルの場合、Headerもデータとして認識されます。

df_data = pd.read_csv('./input/baseball.csv', header=None)
df_data.head()
f:id:yukibata:20200726234143p:plain
元のデータ
f:id:yukibata:20200726231818p:plain
Header なし

行をSkipして読み込み
header=None も同時に指定しないと、SKIPした次の行が Header になってしまいます。

df_data = pd.read_csv('./input/baseball.csv', header=None, skiprows=3)
df_data.head()
f:id:yukibata:20200726234143p:plain
元のデータ
f:id:yukibata:20200726232122p:plain
Headerなし・3行SKIP


行を先頭から切り取る

df_data = pd.read_csv('./input/baseball.csv', nrows=3)
df_data.head()
f:id:yukibata:20200726234143p:plain
元のデータ
f:id:yukibata:20200726232707p:plain
先頭3行を切り取った例

 

「列」の操作をしたい

指定した列番号を切り取る

df_data = pd.read_csv('./input/baseball.csv', usecols=[0, 1, 4])
df_data.head()
f:id:yukibata:20200726234143p:plain
元のデータ
f:id:yukibata:20200726233632p:plain
0列目、1列目、4列目 を取得


指定した列(カラム名)を切り取る

df_data = pd.read_csv('./input/baseball.csv', names=['No.', 'team', 'kana'])
df_data.head()
f:id:yukibata:20200726234143p:plain
元のデータ
f:id:yukibata:20200726233817p:plain
カラム名で取得

 

index の操作をしたい

指定したカラムを index にする

df_data = pd.read_csv('./input/baseball.csv', index_col=['number']) # number を index にする
df_data.head()
f:id:yukibata:20200726234143p:plain
元のデータ
f:id:yukibata:20200726234156p:plain
number を index にしたデータ