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