Python でヘッダー付きの CSV を読む

Vaibhav Vaibhav 2022年2月3日
Python でヘッダー付きの CSV を読む

Python は、明確で理解しやすい汎用プログラミング言語です。

Python は、単純な構文と、機械学習、データサイエンス、ゲーム開発、Web 開発、アプリ開発などの複数のドメイン向けの多くのユーティリティを備えているため、世界でトップ 5 のプログラミング言語の 1つです。シーン。

Python は、ファイル処理をシームレスなタスクにします。txtcsvxlsxpdf などの多くのファイル形式を処理できるため、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
著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python CSV