PythonでカンタンにCSVファイルを扱う方法の一つとしてnumpyライブラリがあります。
この記事では、numpyという強力な数値計算ライブラリを使ってcsvファイルを読み込み、操作、書き出す方法を解説します。
numpyを使ってcsvファイルを読み込む方法
Pythonでcsvファイルを読み込む方法として、numpyというライブラリを使う方法があります。
numpyは数値計算を効率的に行うためのライブラリで、csvファイルの読み込みも簡単に行えます。
numpyのインストール
numpyを使うにはまずインストールが必要です。インストールせずに使おうとするとエラーになります。
インストールしていない場合は、以下のコマンドでインストールしてください。
pip install numpy
numpyのインポート
numpyをインストールしたら、次にPythonプログラムでnumpyをインポートします。
numpyは一般的にnp
という名前でインポートされます。
import numpy as np
numpyのloadtxt関数
numpyにはcsvファイルを読み込むためのloadtxt
関数があります。
loadtxt関数の基本的な使い方
loadtxt
関数を使ってcsvファイルを読み込むには、以下のようにファイル名を指定します。
data = np.loadtxt('sample.csv')
print(data)
上記のコードでCSVファイルを読み込めますが、区切り文字(デリミター)が適切に設定されていないため、おそらく期待通りの結果にならないはずです。
区切り文字の指定(重要)
デフォルトでは、loadtxt
関数はスペース区切りのファイルを読み込みます。
csvファイルはカンマ区切りなので、delimiter
引数で区切り文字を指定します。
data = np.loadtxt('sample.csv', delimiter=',')
print(data)
ヘッダー行のスキップ
csvファイルにヘッダー行がある場合、skiprows
引数でスキップする行数を指定できます。
data = np.loadtxt('sample.csv', delimiter=',', skiprows=1)
print(data)
特定の列だけを読み込む
usecols
引数を使って、特定の列だけを読み込むことができます。
data = np.loadtxt('sample.csv', delimiter=',', skiprows=1, usecols=[0, 2])
print(data)
上記コードは先頭行から2行読み込むことを意味しています。
numpyのgenfromtxt関数
numpyにはもう一つ、genfromtxt
関数というcsvファイルを読み込むための関数があります。
genfromtxt
関数はloadtxt
関数よりも柔軟な設定が可能です。
genfromtxt関数の基本的な使い方
genfromtxt
関数を使ってcsvファイルを読み込むには、以下のようにファイル名を指定します。
data = np.genfromtxt('sample.csv', delimiter=',')
print(data)
欠損値の扱い
genfromtxt
関数は、データに欠損値がある場合でも読み込むことができます。
欠損値はデフォルトでnan
として扱われます。
data = np.genfromtxt('sample_with_missing_values.csv', delimiter=',')
print(data)
データ型の指定
dtype
引数を使って、読み込むデータの型を指定できます。
data = np.genfromtxt('sample.csv', delimiter=',', dtype=float)
print(data)
自動的なデータ型の推定
genfromtxt
関数は、dtype=None
を指定することで、自動的にデータ型を推定して読み込むことができます。
data = np.genfromtxt('sample.csv', delimiter=',', dtype=None)
print(data)
以上が、numpyを使ってcsvファイルを読み込む方法です。
numpyを使うことで、簡単にcsvファイルを読み込んでデータ処理を行うことができます。