CSVファイルの読み方 Python (モジュール、Pandas の例)

⚡ スマートサマリー

CSVファイルは、表形式のデータをプレーンテキストとして保存し、列はカンマで区切られ、行は改行で区切られます。ここでは、CSVファイルの読み書き方法を学びます。 Python 組み込みのcsvモジュールとpandasライブラリを使用します。

  • 📄 それは何ですか: CSVファイルは、表形式のデータをカンマ区切りのプレーンテキストとして格納します。
  • ???? csv.reader: csv.reader() は、CSV ファイルから行をリストとして読み込みます。
  • 📚 辞書リーダー: csv.DictReader() は各行を順序付き辞書に読み込みます。
  • ✍️ csv.writer: csv.writer() と writerow() は、CSV ファイルに行を書き込みます。
  • 🐼 パンダ: pandas.read_csv() と to_csv() は、CSV ファイルの読み書きを 1 行で実行します。
  • 🤖 AIによる支援: CopilotのようなAIツールは、CSVの読み書きコードを瞬時に生成します。

CSVファイルを読み込む Python

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

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

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

CSVサンプルファイル

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

次の表を検討してください

テーブルデータ

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

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

CSVデータ

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

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

Java、ジェームズ・ゴスリング、1995年、.java

C++、ビャーネ・ストロウストルップ、1983、.cpp

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

CSVデータのダウンロード

Python CSV モジュール

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

CSVモジュールの機能

CSV モジュールのドキュメントには、次の関数が記載されています。

  • 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 ファイル内のデータを編集、変更、操作できるリーダー関数とライター関数のみに焦点を当てます。

CSVファイルを読む方法 Python

CSVファイルを読み込む手順は以下のとおりです。 Python.

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

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

実際のところはもっと複雑に聞こえます。これを見てみましょう Python CSV ファイルを読み取るコードを見ると、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']

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

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

次のコードを検討してください

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

CSVファイルの書き方 Python

CSVファイルを書き込む方法は次のとおりです。 Python:

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

次の例を考えてみましょう。区切り文字がアポストロフィであるファイル「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

CSVファイルを書き込む Python

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

PandasはCSVをインポートできるオープンソースライブラリです。 Python データ操作を実行します。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を作成する必要があります。 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(カンマ区切り値)ファイルは、表形式のデータを格納するプレーンテキストファイルです。各行が1行を表し、各列の値はカンマで区切られます。

csvモジュールをインポートし、ファイルを開いて、csv.reader()に渡して行をリストとしてループ処理します。または、csv.DictReader()を使用して各行を辞書として読み込むこともできます。

ファイルを書き込みモードで開き、csv.writer() を作成し、行ごとに writerow() を呼び出すか、複数行の場合は writerrows() を呼び出します。writer は引用符と区切り文字を自動的に処理します。

csv.DictReader() は、CSV ファイルをヘッダー行をキーとして、順序付けられた辞書に読み込みます。これにより、インデックスではなく列名で各値にアクセスできるようになります。

pandas.read_csv('file.csv') を呼び出すと、CSV ファイルが 1 行で DataFrame に読み込まれます。Pandas は自動的に最初の行を列ヘッダーとして使用します。

GitHub CopilotのようなAIアシスタントは、CSVファイルやpandasの呼び出しを自動補完したり、読み書きループを生成したり、短い説明から適切な区切り文字や引用符のオプションを提案したりします。

はい。AIを活用したツールを使えば、CSVデータの解析、クリーニング、変換を自動化したり、pandasパイプラインを生成したり、不正な行や欠落した列に対するエラー処理を追加したりできます。

シンプルで軽量な読み書きには、組み込みのcsvモジュールを使用してください。大規模なCSVデータセットを効率的にフィルタリング、変換、または分析する必要がある場合は、pandasを選択してください。