Python でヘッダー付きの CSV を読む
Python は、明確で理解しやすい汎用プログラミング言語です。
Python は、単純な構文と、機械学習、データサイエンス、ゲーム開発、Web 開発、アプリ開発などの複数のドメイン向けの多くのユーティリティを備えているため、世界でトップ 5 のプログラミング言語の 1つです。シーン。
Python は、ファイル処理をシームレスなタスクにします。txt
、csv
、xlsx
、pdf
などの多くのファイル形式を処理できるため、Python を使用して、ファイルの作成、ファイルの読み取り、データの追加、または既存のファイルのデータの上書きを簡単に行うことができます。
さらに、ファイル処理を効率的かつ簡単にする多くのオープンソースパッケージがあります。
この記事では、Python を使用して CSV ファイルとそのヘッダーを読み取る方法を学習します。同じように、コードスニペットでは説明のためにサンプルファイルを使用します。この CSV ファイルはこちらからダウンロードできます。上記の例では、CSV ファイルの最初の行をヘッダーと見なします。
Python でヘッダー付きの CSV を読む
Python には、CSV ファイルの読み取りに使用できる csv
パッケージがあります。このパッケージは、Python の公式インストールにデフォルトで存在します。
csv
パッケージには、CSV ファイルの読み取りに使用できる reader()
メソッドがあります。読み取る CSV ファイルの内容を出力するためにトラバースできる反復可能なオブジェクトを返します。
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file)
for row in csv_reader:
print(row)
出力:
['Login email', 'Identifier', 'First name', 'Last name']
['laura@example.com', '2070', 'Laura', 'Grey']
['craig@example.com', '4081', 'Craig', 'Johnson']
['mary@example.com', '9346', 'Mary', 'Jenkins']
['jamie@example.com', '5079', 'Jamie', 'Smith']
上記のソリューションの時間計算量は O(n)
です。
ご覧のとおり、出力には、最初の行がヘッダーであり、他の行に値があることが示されています。ヘッダーを別の変数に格納し、すべてを適切な形式で表示することで、出力をさらに美しくすることができます。
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file)
header = next(csv_reader)
print("Header:")
print(", ".join(header))
print("Values:")
for row in csv_reader:
print(", ".join(row))
出力:
Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith
上記のソリューションの時間計算量は O(n)
です。
上記のコードでは、csv_reader
は反復可能です。next()
メソッドを使用して、最初に csv_reader
からヘッダーをフェッチし、次に for
ループを使用して値を繰り返し処理しました。
名前が示すように、CSV ファイルにはコンマ区切りの値があります。
CSV ファイル内の値がコンマで区切られていない場合があります。区切り文字としてセミコロン(;
)、コロン(:
)などを使用している可能性があります。このような場合、csv
パッケージの reader()
メソッドの delimiter
引数を使用できます。
delimiter
引数は、区切り文字と見なす必要のある文字列または文字を受け入れます。たとえば、CSV ファイルに ;
がある場合区切り文字として、このような CSV ファイルを読み取るためのコードは次のようになります。
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file, delimiter=";") # Important
header = next(csv_reader)
print("Header:")
print(", ".join(header))
print("Values:")
for row in csv_reader:
print(", ".join(row))
出力:
Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith