Pandasでcsvファイルの読み込みの便利なオプション

Pandas

Pandasでデータファイルの読み込みができます。csvを始めxlsx形式のものなどかなりの数のデータ形式に対応しています。
その中でも特にcsvファイルの読み込みで知っておくと便利なオプションの紹介です。
Pandasでcsvファイルを読み込むには約50種類のオプションがあります。それぞれのオプションは pandas.read_csv() のキーワード引数で指定します。
詳細は公式ドキュメントを見て下さい。

スポンサーリンク

便利なオプションの紹介

区切り文字の指定

sep=’,’のように指定します。
csvの区切り文字は値と値の区切りを示す重要な働きをします。その区切り文字を指定するものです。
デフォルトはカンマ(,)です。

headerの指定

csvの中でheaderを指定するものです。headerは表データの場合列名に当たる部分です。
header=3 のようでheaderにしたい行を整数値で指定します。
デフォルトはheader=0です。

usecols

csv読み込み時に使用する列の指定ができます。
usecols=[‘foo’, ‘bar’] のように取得したい列名を指定します。列番号で指定することも可能です。
usecols=[2, 4, 6]
これは便利に使えますが、できれば一つ一つ列を指定するのではなく、連続して指定したい場合もあります。
その場合は、*range()を使うと良いです。

例 次のようなデータをcsvで読み込みます。ファイル名はsample.csvとします。

列名を指定して読み込みます。

sample = pd.read_csv('sample.csv', usecols=['no1', 'no3', 'no8'])
sample

列番号を指定しても同じ結果になります。

sample = pd.read_csv('sample.csv', usecols=[0, 2, 7])
sample

連続したセルや飛び飛びのセルを指定。この方法を知っていると複雑な指定ができます。
この指定方法はread_excelでも同様なことができますので活用して下さい。

sample = pd.read_csv('sample.csv', usecols=[*range(0, 3), 5, 7, *range(8, 10)])
sample

skiprows

不要な行を指定することができます。
指定方法は行番号で指定します。行番号はheader部分から0から数えますので注意して下さい。

sample = pd.read_csv('sample.csv', usecols=[0, 2, 7], skiprows=[1, 3])
sample

*range()を活用して連続した値を指定できます。

sample = pd.read_csv('sample.csv', usecols=[*range(0, 3), 5, 7, *range(8, 10)], skiprows=[*range(1, 3), 4])
sample

*range(0, 3) この書き方を覚えるとかなり色々なところで活用できます。これはアンパックすることでrange()で指定した連続値をリストにしているのです。

よくわからない場合は次のように試すと良いです。

def calc(a, b, c):
    return a + b + c

# 次の2つは同じ意味になる
print(calc(*range(1,4)))

print(calc(1, 2, 3))
タイトルとURLをコピーしました