工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python で CSV ファイルを読み取る方法 | CSVファイルの読み書き

CSV ファイルとは

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

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

このチュートリアルでは、次のことを学びます:

CSV サンプル ファイル

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

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

表データ

プログラミング言語 設計者 登場 拡張子
Python グイド・ヴァン・ロッサム 1991年 .py
Java ジェームズ・ゴズリング 1995年 .java
C++ ビャルネ・ストロストラップ 1983年 .cpp

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

CSV データ

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

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

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

C++、Bjarne Stroustrup、1983、.cpp

ご覧のとおり、各行は新しい行であり、各列はコンマで区切られています。これは、CSV ファイルがどのように見えるかの例です。

CSVデータをダウンロード

Python CSV モジュール

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

CSV モジュールの機能

CSV モジュールのドキュメントでは、次の関数を見つけることができます:

このチュートリアルでは、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 ファイルを読み取ることもできます。結果は、ヘッダー行がキーで、他の行が値である辞書として解釈されます。

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

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

Python で CSV ファイルを作成する方法

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

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 は、Python で CSV をインポートしてデータ操作を実行できるオープンソース ライブラリです。パンダは、データを作成、操作、および削除する簡単な方法を提供します。

コマンド 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

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

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

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

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 などのライブラリを使用してテキスト ファイルを解析する方法は他にもあります。それらはすべて、負荷の高い解析を処理できます。単純な文字列操作が機能しない場合は、使用できる正規表現があります。


Python

  1. Python のキーワードと識別子
  2. Python ステートメント、インデント、およびコメント
  3. Python 変数、定数、およびリテラル
  4. Python の型変換と型キャスト
  5. Python の入力、出力、およびインポート
  6. Python グローバル変数、ローカル変数、および非ローカル変数
  7. Python ファイル I/O
  8. Python ディレクトリおよびファイル管理
  9. Python エラーと組み込み例外
  10. Pythonで現在の日付と時刻を取得するには?
  11. TEXTIO を使用してファイルから RAM を初期化する方法