PythonでCSVファイルを読み込む方法|csv.readerの使い方と区切り文字の指定を徹底解説
CSVファイルとは?
CSV(Comma Separated Values:カンマ区切り値)ファイルとは、データの各値をカンマで区切って記述したプレーンテキスト形式のファイルです。カンマを利用することで、表形式(テーブル)のデータをシンプルなテキストとして表現できます。拡張子は「.csv」です。
CSVファイルは、たとえば次のような構造になっています。
Sr.No,Name,City,Age 1,Rahul,Kolkata,21 2,Karan,Amritsar,23 3,Priya,Bangalore,20
CSVファイルを作成するのは簡単です。上記のような形式でメモ帳などのテキストエディタにデータを入力し、「.csv」という拡張子を付けて保存するだけで完成します。
PythonでCSVファイルを読み込む手順
ローカル環境に保存されたCSVファイルは、Pythonの標準ライブラリであるcsvモジュールを使って簡単に読み込めます。基本的な流れは以下のとおりです。
- csvモジュールをインポートする
- open()関数でファイルを読み取りモード('r')で開く
- csv.reader()関数でファイルの内容を読み取る
- 返された反復可能なリーダーオブジェクトをfor文などでループ処理し、1行ずつ内容を取得する
実装例
ここでは、ローカルシステムに「ttp.csv」という名前のCSVファイルが保存されているものとします。ファイルの内容は前述の例のとおりです。このファイルを読み込み、内容を1行ずつ出力してみましょう。
サンプルコード
import csv
with open('ttp.csv','r')as file:
filecontent=csv.reader(file)
for row in filecontent:
print(row)注意: CSVファイルとPythonスクリプトは、同じフォルダ(同じ場所)に配置してください。
実行結果
['Sr.No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
コードの行ごとの解説
import csv ― CSVファイルを読み込むためには、まずcsvモジュールをインポートする必要があります。このモジュールに含まれる関数を使ってファイル操作を行います。
open()でファイルを開く ― open()関数は「ファイル名」と「オープンモード」の2つの引数を受け取ります。今回はファイルを読み込むため、モードには'r'(read)を指定します。
csv.reader()で内容を読み取る ― この関数は反復可能なリーダーオブジェクトを返し、それを変数に格納します。
for文でループ処理 ― リーダーオブジェクトを順番に処理し、ファイルの内容を行単位で出力します。
ファイルの場所に関する注意点
読み込むCSVファイルとPythonプログラムは、同じ場所(同じフォルダ)に置く必要があります。
もしファイルが別の場所にある場合は例外が発生し、次のようなエラーが出力されます。
Traceback (most recent call last):
with open('ttp.csv','r')as file:
FileNotFoundError: [Errno 2] No such file or directory: 'ttp.csv'このエラーを回避するには、CSVファイルを実行中のスクリプトと同じディレクトリに移動するか、open()関数に正しい絶対パス・相対パスを指定しましょう。
カスタム区切り文字でCSVファイルを読み込む方法
CSVファイルの区切り文字はカンマだけではありません。コロン(:)、セミコロン(;)、パイプ(|)などが使われることもあります。カンマ以外の区切り文字が使われている場合は、コード側でその旨を指定する必要があります。
実装例
先ほどのCSVファイルで、区切り文字がカンマではなくコロン(:)になっていた場合、コードは次のように修正します。
サンプルコード
import csv
with open('ttp.csv','r')as file:
filecontent=csv.reader(file,delimiter=':')
for row in filecontent:
print(row)実行結果
['Sr', 'No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
変更点は、csv.reader()の引数としてdelimiter=':'を指定した点だけです。区切り文字が'|'の場合も同様に、delimiter='|'と指定すれば正しく読み込めます。
区切り文字を指定しない場合の問題
delimiterを指定しない場合、デフォルトではカンマのみが区切り文字として扱われます。そのため、ファイル内にカンマが存在しないと、行全体が1つの要素として認識されてしまいます。
実際に、コロン区切りのファイルに対してdelimiterを指定せずに読み込むと、次のような誤った出力になります。
['Sr:No:Name:City:Age'] ['1:Rahul:Kolkata:21'] ['2:Karan:Amritsar:23'] ['3:Priya:Bangalore:20']
このように各行が分割されず、1つの文字列として扱われてしまうため、カンマ以外の区切り文字を使うファイルでは必ずdelimiter引数を指定することが重要です。
-
Python・PandasでヘッダーなしのCSVファイルを読み込む方法
CSVファイルをヘッダー(列名)なしで読み込むには、pandasのread_csv()メソッドでheaderパラメータに「None」を指定します。 ここでは、Microsoft Excelで開いた以下のようなCSVファイル(SalesData.csv)を例に解説します。1行目には「Car」「Reg_Price」「Units」というヘッダーが含まれています。 必要なライブラリのインポート まず、pandasライブラリをインポートします。 import pandas as pd 通常どおりCSVファイルを読み込む headerパラメータを指定せずにCSVファイルを読み込むと、先頭行が自動的にヘッダ
-
ExcelでCSVファイルを読み込む4つの方法|状況別の最適な開き方を徹底解説
Excelでの作業中、CSVファイルを扱う場面は意外と多くあります。「列を保持したままCSVファイルを開きたい」「CSVをExcel形式(.xlsx)に変換したい」「データ接続を作成したい」など、目的はさまざまです。いずれの場合も、まずCSVファイルを正しく読み込むことが、テキストベースのデータをExcelの豊富な機能で活用するための第一歩となります。 本記事では、ExcelでCSVファイルを読み込む4つの方法を、手順やスクリーンショット付きでわかりやすく解説します。ご自身のファイルや作業環境に合わせて、最適な方法を選んでください。 CSVファイルとは? CSVとは「Comma Separat