Python で CSV を辞書に変換する
このチュートリアルでは、csv ファイルが 2つのカラムを持つ Python で csv ファイルを辞書に変換する方法を紹介します。1 列目にはキー、2 列目には値が格納されています。
このチュートリアルでは、サンプルの CSV の内容を以下に示します。
最初の列にはキーとして使用される識別子が含まれ、2 番目の列には値が含まれます。
Python で CSV ファイルを辞書に変換するには csv
モジュールを使用する
Python には csv
モジュールがあり、変換、読み込み、書き込み、挿入などの CSV ファイルを操作するためのあらゆる種類のユーティリティ関数が含まれています。CSV ファイルを辞書に変換するには、CSV ファイルを開き、関数 csv
の reader()
を用いて変数に読み込みます。
その後、辞書内包表記を使用して、reader
オブジェクトを繰り返し、辞書のキーと値のペアとして最初の 2 行にアクセスすることにより、CSV オブジェクトを辞書に変換します。
import csv
dict_from_csv = {}
with open("csv_file.csv", mode="r") as inp:
reader = csv.reader(inp)
dict_from_csv = {rows[0]: rows[1] for rows in reader}
print(dict_from_csv)
出力:
{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
Pandas を使って Python で CSV ファイルを辞書に変換する
CSV ファイルを Python 辞書に変換するもう一つの方法は、CSV ファイル用のデータ操作ツールを含む Pandas モジュールを利用することです。
pandas をインポートした後、組み込み関数 read_csv()
を利用して CSV ファイルの形式を指定します。read_csv()
を呼び出した後は、組み込みの pandas 関数 to_dict()
を用いて結果を辞書に変換します。
import pandas as pd
dict_from_csv = pd.read_csv(
"csv_file.csv", header=None, index_col=0, squeeze=True
).to_dict()
print(dict_from_csv)
パラメータ header
はヘッダを明示的に渡すか、別のパラメータで宣言するかを指定します。
index_col
は、関数 read_csv()
が返す DataFrame
オブジェクトのラベルとしてどの列を用いるかを指定します。この場合、インデックス 0
の最初のカラムがラベルとなります。
最後に、squeeze
パラメータは、データに値の列が 1つしか含まれていないかどうかを定義します。この場合、最初のカラムがインデックスのカラムあるいはラベルとして利用されるため、データには 1つのカラムしか存在しません。
出力:
{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
No module named 'pandas'
というエラーが発生した場合は、pandas
がローカルマシンに pip install pandas
でインストールされていることを確認してください。Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn関連記事 - Python CSV
- Python を使用して 2つの CSV ファイルを比較し、相違点を出力する
- PythonはCSVを複数のファイルに分割します
- 複数の CSV ファイルを Pandas にインポートし、1つの DataFrame に連結する
- Python で CSV に 1 行ずつ書き込みます
- Python で CSV を 1 行ずつ読む
- Python を使用して XML を CSV に変換する