Pandas read_csv() CSVの読みこみ

f:id:wataru_boss:20180615001145p:plain

こんにちは。BOSSです。

実験データ整理プログラムでも用いたモジュールPandasのCSV読み込みメソッド。

これはこれで別記事として残しておこうかと思います。

具体的な使い方についてはそちらの記事を参照していただけたらなということで、今回はread_csvメソッドの引数について簡単にまとめておきます。

read_csv()とread_table()

PandasではCSVファイルやtxtファイルの読み込みは

  • read_csv()

  • read_table()

というメソッドで行うことができます。前者がカンマ区切り、後者がタブ区切りのファイル読み込みが行えます。

取ることのできる引数

Pandasのドキュメント内にてreadメソッドで取ることのできる引数は説明されていますが英語。

ということで日本語で簡潔にまとめます。

pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer',
                names=None, index_col=None, usecols=None, squeeze=False,
                prefix=None, mangle_dupe_cols=True, dtype=None, engine=None,
                converters=None, true_values=None, false_values=None,
                skipinitialspace=False, skiprows=None, skipfooter=None,
                nrows=None, na_values=None, keep_default_na=True, na_filter=True,
                verbose=False, skip_blank_lines=True, parse_dates=False,
                infer_datetime_format=False, keep_date_col=False,
                date_parser=None, dayfirst=False, iterator=False, chunksize=None,
                compression='infer', thousands=None, decimal='.',
                lineterminator=None, quotechar='"', quoting=0, escapechar=None,
                comment=None, encoding=None, dialect=None, tupleize_cols=False,
                error_bad_lines=True, warn_bad_lines=True, skip_footer=0,
                doublequote=True, delim_whitespace=False, as_recarray=False,
                compact_ints=False, use_unsigned=False, low_memory=True,
                buffer_lines=None, memory_map=False, float_precision=None)
引数 内容
filepath_or_buffer 読み込む任意のファイルのパス。URLも可
sep 使用するデリミタ。なにで区切っているかに該当。デフォルトは','
delimiter sepと同じ。デフォルトはNone
delim_whitespace 空白(' ' or '\t)をsepとするか指定。sep='\s+'の設定と同じ。デフォルトはFalse
header ヘッダ行の行数を整数で指定
names 使用する列名のリスト。ファイルにヘッダー行が無い場合は明示的にNoneを渡す。
index_col DataFrameの行ラベルとして使用する列。デフォルトはNone
usecols 読み込む列をリスト形式で指定。データが多い場合必要なところだけを指定して解析時間、使用メモリを削減。
squeeze 大きさが1の次元を全部除去した配列を返す。
prefix ヘッダーがないときに列番号に追加する接頭辞。たとえば、X0、X1、...の場合は「X」
mangle_dupe_cols デフォルトはTrue。重複する列は 'X'、 'X'ではなく 'X'、 'X.1'、... 'X.N'として指定される。Falseを渡すと、列に重複する名前がある場合にデータが上書き。
dtype データまたは列のデータ型。デフォルトはNone
engine 読み込み処理をCで実施するかPythonで実施するかを指定。Cの方が高速。
converters 変数の型を指定。辞書型で指定。キーは整数か列ラベル。
true_values Trueとすべき値
false_valus Falseとすべき値
skipinitialspace sep or delimiterで指定した区切り記号の次にあるスペースを無視するかどうかを指定
skiprows 指定した列をデータから読み込ませないようにするパラメータ。リストまたは整数で指定。
skipfooter デフォルトは0。スキップするファイルの最後の行数を指定(engine= 'c'でサポートされていない)
nrows 読み込むファイルの行数。大容量ファイルの読み込みに便利
na_values NaNとして扱う値を指定
keep_default_na データの解析時にデフォルトのNaN値を含めるかどうかを指定。
na_filter 空の文字列とna_valuesの値を検出。NAを持たないデータでは、na_filter = Falseを渡すと、大きなファイルを読み取る際のパフォーマンスが向上。
verbose 数値でない列に配置されたNA値の数を示す。
skip_blank_lines Trueの場合は、NaN値として解釈するのではなく、空白行をスキップ。
parse_dates 日付として扱う列を指定。
infer_datetime_format Trueかつparse_datesが有効な場合、pandasはカラムのdatetime文字列のフォーマットを推測しようとしますが、推測できる場合は、それらを解析するより速い方法に切り替えます。場合によっては、解析速度を5〜10倍向上させることができます。
keep_date_col Trueでparse_datesで指定した列を結合する際に、元の列も残す。
date_parser parse_datesで指定した列を結合する際に、関数を指定する。
dayfirst DD / MM形式の日付、国際およびヨーロッパ形式
iterator Trueで読み込んだデータをpandasのDataFrame型ではなく、Textfilereader型で返す。
chunksize 読み込んだデータをDataFrame型ではなく、Textfilereader型で返すパラメータ。iteratorと異なり、int型を引き数とし、指定した行数で区切って読み込む。
compression ファイル形式を指定するパラメータ。デフォルトはinfer。4種類の値{‘gzip’, ‘bz2’, ‘infer’, None}が設定可。
thousands 1000ごとの桁区切りの記号を指定。
decimal 小数点として認識する文字。デフォルトは'.'
float_precision Cエンジンが浮動小数点値に使用するコンバータを指定。
lineterminator 改行文字を指定。
quotechar クォテーションを指定。クォテーションで挟まれた値は1つのデータとみなす。
quoting クォテーションで囲まれた値の処理方法を指定
doublequote quotecharが指定されていて、引用符で囲まれていないQUOTE_NONE場合、フィールド内の2つの連続するquotechar要素を1つのquotechar要素として解釈するかどうかを指定。
escapechar このパラメータで指定した記号直後のエスケープシーケンスを文字列として扱う
comment コメント行を識別する記号を指定。指定した値が初めにある行はコメントとみなしてスルーされる。
encoding 文字コードを指定する変数。デフォルトはutf-8
dialect string(文字列) or csv.Dialect instance(csvDialectのインスタンス)を渡す。
error_bad_lines 項目数と一致しない行を見つけた時の処理を指定するパラメータ。デフォルトはTrueで、エラーを返す。Falseを指定した場合、その行を飛ばして読み込む。
warn_bad_lines 項目数と一致しない行を見つけた時に警告を返す。error_bad_linesがFalseであることが必要。
low_memory 解析中のメモリ使用量を少なくできる。
memory_map メモリ上に直接ファイルオブジェクトをマップし、そこから直接データにアクセス。