この記事ではpandasを用いてcsv形式のファイルをDataFrameとして読み込む方法について解説します。
csvファイルをpandasを用いて処理することで、データ集計や加工などを効率的に行うことができます。
目次
Udemyの動画学習でもPythonを勉強しよう!
「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!
UdemyのPythonおすすめ33講座レビューリスト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 | 区切り文字を指定します。省略可能です。省略時はカンマが指定されたものとして扱われます。 |
header | headerの指定をします。省略可能です。省略時は読み込んだ内容からheaderと列名を推測する。 |
names | 列名の指定ができます。省略可能です。 |
index_col | 行ラベルとなる列の指定をします。省略可能です。 |
usecols | 読み込む列を指定します。省略可能です。省略時は全ての列の内容が読み込まれます。 |
dtype | データ全体または特定列のデータのデータ型を指定します。省略可能です。省略時はデータの内容に応じて自動的にデータ型が推測されます。 |
keep_default_na | na_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講座レビューリスト