Python

pandasでcsvファイルを読み込む方法

By 2022年3月27日No Comments

この記事ではpandasを用いてcsv形式のファイルをDataFrameとして読み込む方法について解説します。

csvファイルをpandasを用いて処理することで、データ集計や加工などを効率的に行うことができます。

プログラミング初心者対象!Python入門セミナー

プログラミング初心者がPythonの初歩部分を突破するためのセミナーです。

pandasを用いたcsvファイルの読み込み

csvファイルをpandasのDataFrameとして読み込むには、pandasの関数read_csv()を使います。read_csv()の引数は以下の通りです。

pandas.read_csv(filepath, sep, header, names, index_col, usecols, dtype, keep_default_na, na_values, parse_date)

これらのパラメータについてそれぞれ簡単に説明します。

filepath読み込むCSVファイルの名前を入力します。
sep区切り文字を指定します。省略可能です。省略時はカンマが指定されたものとして扱われます。
headerheaderの指定をします。省略可能です。省略時は読み込んだ内容からheaderと列名を推測する。
names列名の指定ができます。省略可能です。
index_col行ラベルとなる列の指定をします。省略可能です。
usecols読み込む列を指定します。省略可能です。省略時は全ての列の内容が読み込まれます。
dtypeデータ全体または特定列のデータのデータ型を指定します。省略可能です。省略時はデータの内容に応じて自動的にデータ型が推測されます。
keep_default_nana_valuesパラメーターに欠損値と見なされる値が指定された場合に、デフォルトで欠損値として見なしている値を保持するかどうかを指定します。省略可能です。省略時はTrueが指定されたものとして見なされる(デフォルトの欠損値を保持する)
na_values欠損値として見なされる値の追加を指定します。省略可能です
parse_dates日付としてパースするかどうかの指定をします。

headerがない場合

まずはpandasは外部ライブラリなのでインポートをするところから始めます。今回はライブラリ名をpdと省略して用います。header(見出し行)がないdata01.csvを読み込みます。DataFrameが入る変数dataにcsvファイルを代入して読み込みます。パスは絶対パスか相対パスで指定します。

import pandas as pd

data = pd.read_csv('data/data01.csv')
print(data)
#    1   2   3   4
# 0  5   6   7   8
# 1  9  10  11  12

1行目がheaderとして認識されて、列名に割り当てられています。今回のデータにはheaderがないので、header=Noneとして割り当てましょう。

data = pd.read_csv('data/data01.csv', header=None)
print(data)
#    0   1   2   3
# 0  1   2   3   4
# 1  5   6   7   8
# 2  9  10  11  12

引数namesを用いることで任意の値を列名として設定することができます。

data = pd.read_csv('data/data01.csv', names=('a', 'b', 'c', 'd'))
print(data)
#    a   b   c   d
# 0  1   2   3   4
# 1  5   6   7   8
# 2  9  10  11  12

headerがある場合

続いて、headerがあるcsvファイルの読み込みを行います。引数headerを指定してcsvファイルを読み込みます。header=0がデフォルトなので、最初の行がheaderのときは指定しても省略しても同じ結果になります。

data = pd.read_csv('data/data02.csv')
print(data)
#   NAME    H    A    B    C    D   S
# 0    T   97  101  103  107  101  61
# 1    D   83   89   71  173   71  83
# 2    A  223  101   53   97   53  43

data = pd.read_csv('data/data02.csv', header=0)
print(data)
#   NAME    H    A    B    C    D   S
# 0    T   97  101  103  107  101  61
# 1    D   83   89   71  173   71  83
# 2    A  223  101   53   97   53  43

index列の認識がされていないので引数index_colを指定してNAMEをindexとして使います。

data = pd.read_csv('data/data02.csv', index_col=0)
print(data)
#         H    A    B    C    D   S
# NAME
# T      97  101  103  107  101  61
# D      83   89   71  173   71  83
# A     223  101   53   97   53  43

列を指定して表示させてみましょう。特定の列だけを読み込む場合、引数usecolsを使います。usecolsの指定にはリスト[]を用います。列番号もしくは列名で指定します。

data = pd.read_csv('data/data02.csv', usecols=[2, 4])
print(data)
#      A    C
# 0  101  107
# 1   89  173
# 2  101   97

data = pd.read_csv('data/data02.csv', usecols=['A', 'C'])
print(data)
#      A    C
# 0  101  107
# 1   89  173
# 2  101   97

次に行をスキップしてファイルの読み込みを行います。この場合引数skiprowsを使います。今回の例だとskiprows=2とすると2行文スキップされます。

data = pd.read_csv('data/data02.csv', skiprows=2)
print(data)
#    D   83   89  71  173  71.1  83.1
# 0  A  223  101  53   97    53    43

スキップする行番号を指定することで読み込むこともできます。スキップする行が1行だけでもリストを使う必要があります。

data = pd.read_csv('data/data02.csv', skiprows=[1, 3])
print(data)
#   NAME   H   A   B    C   D   S# 0    D  83  89  71  173  71  83
data = pd.read_csv('data/data02.csv', skiprows=[1])
print(data)
#   NAME    H    A   B    C   D   S
# 0    D   83   89  71  173  71  83
# 1    A  223  101  53   97  53  43

まとめ

今回はpandasを利用したcsvファイルの読み込み方法について解説しました。csvファイルをpythonを使って処理できるようになることで、業務の負担軽減にも繋がるので是非使ってみてください。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL