【Python入門】Pythonを用いたCSVファイルに含まれる情報を取得する/使用する方法とは?PythonでのCSVファイルに含まれる情報の取得/使用方法を徹底解説

Python

CSV(Comma-Separated Values)ファイルは、データをテキスト形式で表現するための一般的なフォーマットです。データは行と列の形で表現され、各セルはカンマで区切られます。CSVファイルは、ExcelやGoogleスプレッドシートなどの一般的なプログラムで簡単に作成、編集、閲覧できます。本記事では、PythonによるCSVファイルに含まれる情報を取得する/使用する方法を紹介します。

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Pythonの場合、どうやってCSVファイルを使うの?
・Pythonのリスト(配列)は、どの様にCSVファイルを扱うのだろうか?

CSVファイルに含まれる情報の取得/使用(自作関数)

関数の定義(読み込み用の関数)

def readFileCSVWithHeader(input_path:str, input_encoding:str="utf_8", bool_header:bool=True, bool_eval:bool=True) -> tuple:
    if not existData(input_path): print(f"[ERROR] Does Not Exist >> {input_path}"); return None 
    with open(input_path, mode='r', encoding=input_encoding) as f: lines = list(csv.reader(f))
    
    if bool_eval:
        new_lines = []
        for line in lines:
            new_line = []
            for value in line:
                try: value = eval(value)
                except: pass 
                new_line.append(value)
            new_lines.append(new_line)
        lines = new_lines

    header = {}
    if bool_header: 
        for column_id, label in enumerate(lines[0]): header[label] = column_id
        lines.pop(0)
    
    return (header, lines)

使用例

データの内容(sample.csv)

head_1,head_2,head_3
apple,APPLE,りんご
123,1.23,1e23
True,False,None

プログラムの内容

input_file_path = "INPUT/sample.csv"
csv_header, csv_data = readFileCSVWithHeader(input_file_path, "shift_jis")

print(f"Header:\n{csv_header} {type(csv_header)}\n")
print(f"Data:\n{csv_data} {type(csv_data)}\n")

print(f"{csv_data[0][0] = }")
print(f"{csv_data[0][csv_header['head_1']] = }")

print(f"{csv_data[0][1] = }")
print(f"{csv_data[0][csv_header['head_2']] = }")

print(f"{csv_data[0][2] = }")
print(f"{csv_data[0][csv_header['head_3']] = }")

print(f"{csv_data[1][0] = }")
print(f"{csv_data[1][csv_header['head_1']] = }")

print(f"{csv_data[1][1] = }")
print(f"{csv_data[1][csv_header['head_2']] = }")

print(f"{csv_data[1][2] = }")
print(f"{csv_data[1][csv_header['head_3']] = }")

print(f"{csv_data[2][0] = }")
print(f"{csv_data[2][csv_header['head_1']] = }")

print(f"{csv_data[2][1] = }")
print(f"{csv_data[2][csv_header['head_2']] = }")

print(f"{csv_data[2][2] = }")
print(f"{csv_data[2][csv_header['head_3']] = }")
Header:
{'head_1': 0, 'head_2': 1, 'head_3': 2} <class 'dict'>

Data:
[['apple', 'APPLE', 'りんご'], [123, 1.23, 1e+23], [True, False, None]] <class 'list'>

csv_data[0][0] = 'apple'
csv_data[0][csv_header['head_1']] = 'apple'
csv_data[0][1] = 'APPLE'
csv_data[0][csv_header['head_2']] = 'APPLE'
csv_data[0][2] = 'りんご'
csv_data[0][csv_header['head_3']] = 'りんご'
csv_data[1][0] = 123
csv_data[1][csv_header['head_1']] = 123
csv_data[1][1] = 1.23
csv_data[1][csv_header['head_2']] = 1.23
csv_data[1][2] = 1e+23
csv_data[1][csv_header['head_3']] = 1e+23
csv_data[2][0] = True
csv_data[2][csv_header['head_1']] = True
csv_data[2][1] = False
csv_data[2][csv_header['head_2']] = False
csv_data[2][2] = None
csv_data[2][csv_header['head_3']] = None

Pythonで取り扱うCSVデータの内容

まとめ

Pythonはデータ活用する上で、とても便利なプログラミング言語です。この記事で紹介させて頂いた方法で「CSVファイル」に格納されている情報を読み込み、データ処理/データ分析/データ管理等でぜひ活用してみてください。

関連検索ワード

How to get/use a CSV data with Python?

関連キーワード

python, 入門, 初心者, ファイル, 取得, 使用, CSV, file, get, use