Python で CSV ファイルを読み取る方法 (モジュール、パンダの例)

CSVファイルとは何ですか?

A CSVファイル は、特定の構造を使用して表形式のデータを配置する単純なタイプのプレーン テキスト ファイルです。 CSV ファイルの標準形式は、行と列のデータによって定義されます。改行は各行を終了して次の行を開始し、行内の各列はカンマで区切られます。

CSV はコンパクトでシンプルかつ汎用的なため、データ交換に一般的な形式です。 多くのオンライン サービスでは、ユーザーが Web サイトから表形式のデータを CSV ファイルにエクスポートできます。 CSV ファイルは Excel で開くことができ、ほぼすべてのデータベースには CSV ファイルからインポートできるツールがあります。

CSVサンプルファイル

テーブル形式のデータは CSV (カンマ区切り値) とも呼ばれ、文字通り「カンマ区切り値」です。 これは、表形式のデータの表示を目的としたテキスト形式です。 ファイルの各行はテーブルの XNUMX 行です。 個々の列の値は、カンマ (,)、セミコロン (;) または別の記号の区切り記号で区切られます。 CSV は Python で簡単に読み取って処理できます。

以下を検討してくださいwing 表

テーブルデータ

プログラミング言語 によって設計された 登場しました 拡張
Python グイドファンロッサム 1991 .py
Java ジェームス・ゴーsling 1995 .Java
C + + Bjarne Stroustrup 1983 .cpp

このテーブルを以下のように csv で表現できます。

CSVデータ

プログラミング言語、設計者、登場者、拡張子

Python、グイド・ヴァン・ロッサム、1991 年、.py

ジャワ、ジェームス・ゴーsling、1995 年、.java

C++、Bjarne Stroustrup、1983、.cpp

ご覧のとおり、各行は新しい行であり、各列はカンマで区切られています。 これは CSV ファイルの例です。

CSVデータのダウンロード

Python CSV モジュール

Python CSV ファイルを処理するための CSV モジュールを提供します。 データの読み取り/書き込みを行うには、CSV の行をループする必要があります。 指定した列からデータを取得するには、split メソッドを使用する必要があります。

CSVモジュールの機能

CSV モジュールのドキュメントでは、次のものが見つかります。wing 機能:

  • csv.field_size_limit – 最大フィールド サイズを返す
  • csv.get_dialect – 名前に関連付けられた方言を取得します
  • csv.list_dialects – 登録されているすべての方言を表示します
  • csv.reader – csv ファイルからデータを読み取ります
  • csv.register_dialect – 方言を名前に関連付けます
  • csv.writer – データを csv ファイルに書き込みます
  • csv.unregister_dialect – 方言レジストリの名前に関連付けられた方言を削除します
  • csv.QUOTE_ALL – 種類に関係なく、すべてを引用します。
  • csv.QUOTE_MINIMAL – 特殊文字を含むフィールドを引用符で囲む
  • csv.QUOTE_NONNUMERIC – 数値ではないすべてのフィールドを引用符で囲みます
  • csv.QUOTE_NONE – 出力では何も引用しないでください

このチュートリアルでは、CSV ファイル内のデータを編集、変更、操作できるリーダー関数とライター関数のみに焦点を当てます。

Python で CSV ファイルを読み取る方法

以下はPythonでCSVファイルを読み込む手順です。

ステップ1) CSV ファイルからデータを読み取るには、リーダー関数を使用してリーダー オブジェクトを生成する必要があります。

リーダー関数は、ファイルの各行を取得し、すべての列のリストを作成するために開発されました。 次に、変数データが​​必要な列を選択する必要があります。

実際よりもはるかに複雑に聞こえます。 CSV ファイルを読み取るためのこの Python コードを見てみましょう。CSV ファイルの操作はそれほど難しくないことがわかります。

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

ステップ2) 上記のプログラムを実行すると、出力は次のようになります。

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Python で CSV ファイルを辞書に読み込む方法

DictReader を使用して CSV ファイルを読み取ることもできます。 結果は、ヘッダー行がキーであり、他の行が値であるディクショナリとして解釈されます。

以下を検討してくださいwing コード

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

このコードの結果は次のようになります。

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

CSVファイルを辞書に読み込む

CSV ファイルからデータを読み取るこの方法は、以前の方法よりもはるかに簡単です。 ただし、これはデータを読み取る最適な方法ではありません。

PythonでCSVファイルを記述する方法

Python で CSV ファイルを作成する方法は次のとおりです。

CSV ファイルに保存したい一連のデータがある場合は、writer() 関数を使用する必要があります。 行(行)にわたってデータを反復するには、writerow()関数を使用する必要があります。

以下を検討してくださいwing 例。 データをファイル「writeData.csv」に書き込みます。区切り文字はアポストロフィです。

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

csv ファイルの結果は次のとおりです。

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

PythonでCSVファイルを書き込む

Pandas を使用して CSV ファイルを読み取る

Pandas は、Python で CSV をインポートし、データ操作を実行できるオープンソース ライブラリです。 Pandas は、データを作成、操作、削除する簡単な方法を提供します。

コマンドpip install pandasを使用して pandas ライブラリをインストールする必要があります。で Windows, Linux のターミナルのコマンド プロンプトでこのコマンドを実行します。

CSV を pandas DataFrame に読み取るのは非常に迅速かつ簡単です。

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

の結果 CSV パンダの読み取り 例:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

とても便利なライブラリです。 わずか XNUMX 行のコードで、前と同じ結果が得られます。 パンダは CSV の最初の行に列名が含まれていることを認識しており、それらを自動的に使用します。

Pandasを使用してCSVファイルを書き込む

Pandas を使用した CSV ファイルへの書き込みは、読み取りと同じくらい簡単です。 ここなら納得できますね。 まず、次の内容に基づいて DataFrame を作成する必要があります。wing Python は CSV コードに書き込みます。

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'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

これが出力です

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

そして、指定した場所にCSVファイルが作成されます。

Pandasを使用してCSVファイルを書き込む

要約

これで、メソッド「csv」を使用する方法と、CSV 形式でデータを読み書きする方法がわかりました。 CSV ファイルは、読み取りと管理が容易で、サイズが小さいため、処理や処理が比較的高速であるため、ソフトウェア アプリケーションで広く使用されています。 transmission.

csv モジュールは、簡単に読み書きできるようにするさまざまな関数とクラスを提供します。 Python の公式ドキュメントを参照すると、さらに興味深いヒントやモジュールが見つかります。 CSV は保存に最適な方法です。wing、データを送信します。 実際、最初に思われるほど、学ぶのはそれほど難しくありません。 しかし、少し練習すれば、マスターできるようになります。

Pandas は、CSV ファイルを読み取るための優れた代替手段です。

また、ANTLR、PLY、PlyPlus などのライブラリを使用してテキスト ファイルを解析する他の方法もあります。 これらはすべて高度な解析を処理でき、単純な文字列操作が機能しない場合は、使用できる正規表現があります。