pandasでcsv/tsvファイル読み込み

read_csv()read_table()を使う。

read_csvとread_table

read_csv()read_table()はデフォルトの区切り文字が違うだけで中身は同じ。read_csv()はカンマ,read_table()はタブ\t

ソースを見ると同じ関数を呼び出している。

read_csv = _make_parser_function('read_csv', sep=',')
read_csv = Appender(_read_csv_doc)(read_csv)
read_table = _make_parser_function('read_table', sep='\t')
read_table = Appender(_read_table_doc)(read_table)

csvファイル(カンマ区切り)を読みたいときはread_csv()、tsvファイル(タブ区切り)を読みたいときはread_table()でOKだと思う。

カンマでもタブでもない場合、引数(sepdelimiter)で区切り文字を設定できる。

以下、read_csv()で説明するが、read_tableでも同じ。

headerがある場合

header=0のようにheaderの行番号を0始まりで指定する。デフォルトがheader=0なので、最初の行がheaderの場合は省略可能。

import pandas as pd
# header.csv
# a,b,c
# 0,1,2
# 3,4,5
# 6,7,8
df_header = pd.read_csv('header.csv', header=0)
print df_header
# a b c
# 0 0 1 2
# 1 3 4 5
# 2 6 7 8

headerがない場合

headerがない場合、header=Noneでpandasが勝手に列名を割り当ててくれる。names=('A', 'B', 'C')のように設定することも出来る。

# simple.csv
# 0,1,2
# 3,4,5
# 6,7,8
df_simple = pd.read_csv('simple.csv', header=None)
print df_simple
# 0 1 2
# 0 0 1 2
# 1 3 4 5
# 2 6 7 8
df_simple = pd.read_csv('simple.csv', names=('A', 'B', 'C'))
print df_simple
# A B C
# 0 0 1 2
# 1 3 4 5
# 2 6 7 8

indexがある場合

index_col=0のようにindexの列番号を0始まりで指定する。

# header_index.csv
# ,a,b,c
# ONE,0,1,2
# TWO,3,4,5
# THREE,6,7,8
df_header_index = pd.read_csv('header_index.csv', index_col=0)
print df_header_index
# a b c
# ONE 0 1 2
# TWO 3 4 5
# THREE 6 7 8

その他の引数

  • skiprows : list-like or integer
    • スキップする(読み込まない)行番号をリストで指定する。
    • または、ファイルの先頭を何行スキップするか、行数を整数で指定する。
  • skipfooter : int, default 0
    • ファイルの末尾を何行スキップするか、行数を整数で指定する。
  • usecols : array-like
    • 読み込む列番号をリストで指定する。指定された列だけが返される。
スポンサーリンク

関連記事