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()
「ファイル形式」を指定したい
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()
行をSkipして読み込み
header=None も同時に指定しないと、SKIPした次の行が Header になってしまいます。
df_data = pd.read_csv('./input/baseball.csv', header=None, skiprows=3) df_data.head()
行を先頭から切り取る
df_data = pd.read_csv('./input/baseball.csv', nrows=3) df_data.head()
「列」の操作をしたい
指定した列番号を切り取る
df_data = pd.read_csv('./input/baseball.csv', usecols=[0, 1, 4]) df_data.head()
指定した列(カラム名)を切り取る
df_data = pd.read_csv('./input/baseball.csv', names=['No.', 'team', 'kana']) df_data.head()
index の操作をしたい
指定したカラムを index にする
df_data = pd.read_csv('./input/baseball.csv', index_col=['number']) # number を index にする df_data.head()