pandasを使う最大の目的の一つに、csv形式のデータをいじくり回したい、ということがあるかと思います。
本記事ではその初歩となる『pandasにおけるcsvの読み込み』について解説します。
csvを普通に読み込む
『read_csv()』を使います。
import pandas as pd
df = pd.read_csv('csvファイルのパス')
ヘッダー無しでcsvを読み込む
csvを普通に読み込むと、一番上の行が見出しとして読み込まれます。見出し無しのcsvデータの場合は、逆に困ってしまうので、ヘッダー無しで読み込む方法が存在します。
import pandas as pd
df = pd.read_csv('csvファイルのパス', header=None)
さらに詳しく:【Python】pandasでヘッダー無しでデータを読み込む
列を指定してcsvを読み込む
usecolsをオプションで指定すると、列を絞り込んで読み込むことができます。
例えば、以下の様なデータがあったとします。
1列目, 2列目, 3列目
0 A B C
1 D E F
2 G H I
3 J K L
1列目と2列目だけ読み込むには、usecols=[0, 1]を指定します。
import pandas as pd
df = pd.read_csv('csvファイルのパス', usecols=[0, 1])
# 1列目, 2列目
#0 A B
#1 D E
#2 G H
#3 J K
また、『usercols=[‘1列目’, ‘2列目’]』のように、列目で指定することもできます。
行を指定してcsvを読み込む
行を指定して読み込む方法は、列の場合とはなぜか違います。ここでは、2つ紹介します。
- 先頭から読み込む行数を指定
- 先頭から飛ばす行数を指定
先頭から読み込む行数を指定
『nrows』を指定すれば一番上の行から、何行読み込むのか指定できます。
1列目, 2列目, 3列目
0 A B C
1 D E F
2 G H I
3 J K L
こちらのデータを、上から3行読み込んでみます。
import pandas as pd
df = pd.read_csv('csvファイルのパス', nrows=3)
# 1列目, 2列目, 3列目
#0 A B C
#1 D E F
#2 G H I
先頭から飛ばす行数を指定
csvデータの上の方にいらない行が複数あったりすることがあります。そんな時は『skiprows』を使って飛ばしてしまいます。
import pandas as pd
df = pd.read_csv('csvファイルのパス', skiprows=2)
# 1列目, 2列目, 3列目
#0 G H I
#1 J K L