PythonでCSVファイルを解析する方法
CSVファイルは、表形式のデータをファイルに格納する際によく使用されます。データベースのテーブルやExcelファイルから容易にデータをCSVファイルにエクスポートすることができます。また、プログラムだけでなく人間にも読みやすいです。このチュートリアルでは、PythonでCSVファイルを解析する方法を学びます。
パーシングとは何ですか?
ファイルを解析するとは、ファイルからデータを読み込むことを意味します。ファイルにはテキストデータ、いわゆるテキストファイルが含まれている場合もありますし、スプレッドシートである場合もあります。
CSVファイルとは何ですか?
CSVはComma Separated Filesの略であり、データはカンマで区切られています。CSVファイルは大量のデータを扱うプログラムによって作成されます。CSVファイルからのデータは、スプレッドシートやデータベースの形式で簡単にエクスポートすることができます。また、他のプログラムで使用するためにインポートすることもできます。では、CSVファイルの解析方法を見てみましょう。PythonでのCSVファイルの解析は非常に簡単です。Pythonには組み込みのCSVライブラリがあり、CSVファイルからのデータの読み書き機能を提供しています。ライブラリにはさまざまな形式のCSVファイルが用意されており、データ処理がユーザーフレンドリーに行えます。
PythonでCSVファイルを解析する
Pythonの組み込みCSVモジュールを使用してCSVファイルを読み込む。
import csv
with open('university_records.csv', 'r') as csv_file:
reader = csv.reader(csv_file)
for row in reader:
print(row)
結果:
PythonでCSVファイルを書く
ファイルを書き込むために、書き込みモードまたは追記モードで開く必要があります。ここでは、既存のCSVファイルにデータを追加します。
import csv
row = ['David', 'MCE', '3', '7.8']
row1 = ['Lisa', 'PIE', '3', '9.1']
row2 = ['Raymond', 'ECE', '2', '8.5']
with open('university_records.csv', 'a') as csv_file:
writer = csv.writer(csv_file)
writer.writerow(row)
writer.writerow(row1)
writer.writerow(row2)
Pandasライブラリを使用してCSVファイルを解析する。
CSVファイルを操作するもう一つの方法があります。それは最も人気があり、よりプロフェッショナルな方法であり、それがpandasライブラリを使用する方法です。PandasはPythonのデータ分析ライブラリです。主に2次元または1次元のテーブルで与えられたデータを操作するための異なる構造、ツール、操作を提供しています。
パンダのライブラリの使用法と特徴
- Data sets pivoting and reshaping.
- Data manipulation with indexing using DataFrame objects.
- Data filtration.
- Merge and join operation on data sets.
- Slicing, indexing, and subset of massive datasets.
- Missing data handling and data alignment.
- Row/Column insertion and deletion.
- One-Dimensional different file formats.
- Reading and writing tools for data in various file formats.
CSVファイルを操作するためには、pandasをインストールする必要があります。pandasのインストールは非常に簡単です。以下の手順に従って、PIPを使用してインストールしてください。
$ pip install pandas
インストールが完了したら、すぐに利用可能です。
Pandasモジュールを使用してCSVファイルを読み込む。
Pandasを使ってCSVファイルのデータをインポートするには、ファイルシステム上のデータファイルのパスと現在の作業ディレクトリを知る必要があります。コードとデータファイルを同じディレクトリまたはフォルダに保持することをおすすめします。そうすることで、パスを指定する必要がなくなり、時間とスペースを節約できます。
import pandas
result = pandas.read_csv('ign.csv')
print(result)
出力
パンダモジュールを使用してCSVファイルを書き込む
パンダを使用してCSVファイルを書き込むことは読み込むのと同じくらい簡単です。唯一新しい用語はデータフレームです。パンダのデータフレームは、二次元の異種の表形式のデータ構造です(データは行と列で表形式に配置されます)。パンダのデータフレームは、データ、列、行の3つの主要なコンポーネントで構成されており、ラベル付きのx軸とy軸(行と列)を持っています。
from pandas import DataFrame
C = {'Programming language': ['Python', 'Java', 'C++'],
'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
'Appeared': ['1991', '1995', '1985'],
'Extension': ['.py', '.java', '.cpp'],
}
df = DataFrame(C, columns=['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv(r'program_lang.csv', index=None, header=True)
出力
結論
私たちは、組み込みのCSVモジュールとpandasモジュールを使ってCSVファイルを解析する方法を学びました。ファイルを解析するためのさまざまな方法がありますが、それらはプログラマーに広く使われていません。PlyPlus、PLY、ANTLRのようなライブラリは、テキストデータの解析に使用されるいくつかのライブラリの一部です。今では、組み込みのCSVライブラリと強力なpandasモジュールを使用して、CSV形式のデータの読み書き方法を知っています。上記のコードは非常に基本的でわかりやすいものです。Pythonに詳しい人であれば理解できると思いますので、説明する必要はないと思います。ただし、空のデータや曖昧なデータ入力を伴う複雑なデータの操作は簡単ではありません。それには練習とpandasのさまざまなツールの知識が必要です。CSVはデータの保存や共有に最適な方法です。PandasはCSVモジュールの優れた代替手段です。最初は難しいかもしれませんが、学ぶのはそれほど難しくありません。少し練習すればマスターできるでしょう。