CSVファイルの読み方 Python (モジュール、Pandas の例)
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 ファイルの例です。
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ファイルの書き方 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
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ファイルが作成されます。
まとめ:
これで、メソッド 'csv' の使い方と、CSV 形式でデータを読み書きする方法がわかりました。CSV ファイルは読み取りと管理が簡単で、サイズが小さいため処理と転送が比較的高速であるため、ソフトウェア アプリケーションで広く使用されています。
csvモジュールは、簡単に読み書きできるさまざまな関数とクラスを提供します。公式の Python ドキュメントを読んで、さらに興味深いヒントやモジュールを見つけてください。CSV は、データを保存、表示、送信するのに最適な方法です。実際には、最初は難しく思えるかもしれませんが、それほど難しくはありません。少し練習すれば、マスターできます。
Pandas は、CSV ファイルを読み取るための優れた代替手段です。
また、ANTLR、PLY、PlyPlus などのライブラリを使用してテキスト ファイルを解析する他の方法もあります。 これらはすべて高度な解析を処理でき、単純な文字列操作が機能しない場合は、使用できる正規表現があります。