ホームページ >バックエンド開発 >Python チュートリアル >Pythonを使用してCSVファイルを使用して動作します

Pythonを使用してCSVファイルを使用して動作します

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-15 08:52:11417ブラウズ

Pythonを使用してCSVファイルを使用して動作します

キーテイクアウト

  • Pythonの組み込みCSVモジュールは、CSV形式でデータを読み取り、書き込み、処理するための関数とクラスを提供します。 csv.reader()関数はCSVファイルを読み取るために使用でき、csv.writer()はcsvファイルにデータを書き込むことを許可します。
  • CSVファイルは、PythonのCSV.DicTreaderクラスを使用してJSON形式に変換できます。CSVファイルをPython辞書に変換します。辞書は、json.dump()関数を使用してjsonファイルに変換できます。
  • JSONファイルは、最初にjson.load()関数を使用してJSONファイルをPython辞書に変換することにより、CSV形式に変換できます。 CSV.Dictwriterクラスメソッドを使用して、辞書をCSVファイルに変換できます。
  • CSVファイルは、一般的にスプレッドシートとデータベースでのデータインポートとエクスポートに使用されます。 PythonのCSVモジュールは、CSVファイルを使用してJSONなどの他の形式に変換することを簡素化します。
  • この記事では、Pythonを使用してCSVファイルのデータを読み取り、書き込む方法と、CSVファイルをJSON形式に変換する方法とその逆の方法を学びます。 CSVモジュールの使用方法を探り、それがどのように機能するかを理解するのに役立つ例を見てみましょう。
  • CSV(CommaSeparated値)ファイルは、表形式の構造にデータを保存できるテキストファイル形式です。これは、データベースとスプレッドシートからのデータのエクスポートとインポートに使用される一般的な形式です。
  • 名前が示すように、CSVファイル内の各データはコンマ(、)によって区切られています。 「CSV」という用語を使用して、コロン(:)、セミコロン(;)、タブ(t)などの他のタイプのセパレーターとの形式を記述できる場合があります。この記事の目的のために、コンマをデリミターとして使用するCSVファイル(RFC 4180として知られています)を扱うだけです。
開いたとき、CSVファイルのコンテンツは次のようになります:

上記のように、

コンマデリミッターは、ファイル内の各特定のデータを分離するために使用されます。

データの最初の行は、オプションでヘッダーとして機能し、その下のデータの各列を識別できます。 CSVファイルは、一般に.CSVファイル拡張子で保存されます。

CSVモジュール

MS SQLのようなスプレッドシートやデータベースはCSVファイルとしてインポートおよびエクスポートできるため、CSV形式で提供されるデータをプログラムで処理する方法を知ることが重要です。 Pythonなどのほとんどのプログラミング言語は、CSVでファイルの処理をサポートし、JSONなどの他の形式に変換します。
Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
Pythonは、CSV形式で他の形式のファイル処理を読み取り、書き込み、実行するための

csv

モジュールを提供します。組み込まれたライブラリは、CSVファイルをシームレスに使用する機能とクラスを提供します。

Pythonを使用してCSVファイルを読み取る方法

csvモジュールには、csvファイルを読み取るためのcsv.reader()関数があります。 Pythonの組み込みOpen()関数で生成されたものなど、オブジェクト(ファイルオブジェクトを含む)と一緒に使用されます。

open()to call()からファイルオブジェクトが与えられた場合、csv.reader()はリーダーオブジェクトを返します。リーダーオブジェクトを使用して、CSVデータの各ラインを反復することができます。ここで、行は文字列のリストとして返されます。

例を見てみましょう:

Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
上記のコードの出力は次のとおりです

最初のコードスニペットから、Employees.csvファイルが開かれ、その後csv.reader()関数はそれを解析し、リーダーオブジェクトを返します。 Loop for Loopを使用して、Readerオブジェクトを繰り返すために使用されます。これは、上から始まるEmployeos.csvファイルから各行のデータのリストを返します。
<span>import csv
</span>
<span>with open('employees.csv', newline='') as file_obj:
</span>    reader_obj <span>= csv.reader(file_obj)
</span>    <span>for row in reader_obj:
</span>        <span>print(row)
</span>
Pythonを使用してCSVファイルへの書き込み方法

CSVファイルからデータを読み取ることに加えて、Pythonでこれらのファイルにデータを書き込むこともできます。 csv.writer()関数を使用すると、データをCSV形式に書き込むことができます。ファイルを書き込みモードで開いた後、csv.writer()functionは、提供されたファイルオブジェクトの区切り文字列に提供されたデータを変換するライターオブジェクトを返します。 Writerオブジェクトには、writion()を書くためのwriter()方法(文字列または数のカンマ分離値が1時間あたり)を記述する方法がありますが、writer()メソッドは複数行に一度に使用されます。 writerow()およびwriterows()メソッドは、データをCSVファイルに書き込むための2つのオプションのみです。 上記のコードスニペットで使用されるすべてのリストオブジェクトは、2Dリストにグループ化され、ライターオブジェクトのwriter()メソッドへの引数として渡すことができ、同じ結果を達成できます。

withステートメントが実行された後、これらのコンマ区切り値を含む現在の作業ディレクトリにCSVファイル(Products.CSV)が作成されます。

例を次に示します

上記のコードの出力は次のとおりです

Pythonを使用してCSVをJSONに変換する方法

csv

モジュールは、これを達成するのに役立つCSV.DicTreaderクラスを提供します。

<span>['Employee Id', 'First Name', 'Gender', 'Start Date', 'Last Login Time', 'Salary', 'Bonus %', 'Senior Management', 'Team']
</span><span>['1', 'Douglas', 'Male', '8/6/1993', '12:42 PM', '', '6.945', 'TRUE', 'Marketing']
</span><span>['2', 'Thomas', 'Male', '3/31/1996', '6:53 AM', '61933', '4.17', '', '']
</span><span>['3', 'Maria', 'Female', '4/23/1993', '11:17 AM', '', '11.858', 'FALSE', 'Finance']
</span><span>['4', 'Jerry', 'Male', '3/4/2005', '1:00 PM', '138705', '9.34', '', 'Finance']
</span><span>['5', 'Larry', 'Male', '1/24/1998', '4:47 PM', '101004', '1.389', 'TRUE', 'Client Services']
</span><span>...
</span>
CSV.DicTreaderクラスメソッドは、特定のCSVファイルをPython Dictionaryに変換するのに役立ち、

JSON

json.dump()関数を適用して、結果のPython辞書をjsonファイルに変換します。 CSV.DicTreader()クラスは、オプションのFieldNames引数を取ります。フィールド名が省略されている場合、最初の行の値は、フィールド名として残りのデータにマッピングされます。
<span>import csv
</span>
<span>with open('products.csv', 'w', newline='') as file_obj:
</span>    writer_obj <span>= csv.writer(file_obj)
</span>    writer_obj<span>.writerow(['Product Name', 'Price', 'Quantity', 'SKU Number' ])
</span>    writer_obj<span>.writerow(['Rice', 80, 35, 'RI59023'])
</span>    writer_obj<span>.writerow(['Curry', 2, 200, 'CY13890'])
</span>    writer_obj<span>.writerow(['Milk', 9.5, 315, 'MK10204'])
</span>

例を見てみましょう:

上記のコードの出力は次のとおりです

CSVファイルをJSONの同等物に変換するには、次の手順を適用しました。
  • employees.csvファイルを読み取りモード
  • で開きました
  • CSV.DicTreaderクラスを使用して、返されたファイルオブジェクトからPython辞書を作成しました employees.jsonなどの書き込みモードでJSONファイルを開きました(そのようなファイルが存在しなかった場合、作成されたでしょう)
  • json モジュールのdump()関数を使用して、python辞書(my_dict)をjsonファイルに変換します
  • python
を使用して、JSONをjsonにCSVに変換する方法 このセクションでは、JSONファイルからCSV形式にデータを変換する方法について説明します。これを達成するために、内蔵

csv

jsonpythonモジュールの両方を使用します。 json moduleのjson.load()関数は、jsonファイルをpython辞書に変換し、 csvmoduleのcsv.dictwiterクラスメソッドはpython辞書をCSVに変換するのに役立ちます。ファイル。 例を次に示します JSONファイルをCSVに相当するものに変換するには、次の手順を適用しました。

employees.jsonファイルを読み取りモード

で開きました
Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
json.load()関数を使用してpython辞書py_dict

を作成します

csvファイルemployeing_records.csvを書き込みモードで開きました(そのようなファイルが存在しなかった場合、1つは作成されていました)
  • 必要な引数を持つCSV.DictWriterクラスを使用して作家オブジェクトを作成しました
  • Writerオブジェクトメソッドを使用して、辞書を適切な数の行にマッピングしました
  • 結論
  • CSVファイルは非常に人気があり、スプレッドシートやデータベースのエクスポートとインポートによく使用されます。このファイル形式は、データを使用している人によって非常に頻繁に使用されます。ただし、Pythonを使用してプログラミングしている間、CSVファイルをすばやく使用する必要がある場合があるため、CSVでファイルI/O操作を実行する方法を学ぶことが重要です。
  • pythonの
csv

モジュールは、この種のタスクに必要な関数とクラスを提供するため、CSVファイルを操作するのに非常に便利です。 また、上記の例に見られるように、ファイルをある形式から別の形式(CSVからJSONに)に変換する必要がある場合があることにも注意することが重要です。 Python CSVファイルに関するよくある質問(FAQ)

Pythonで大規模なCSVファイルを処理するにはどうすればよいですか?

Pythonで大きなCSVファイルを処理することは、メモリの制約のために少し難しい場合があります。ただし、Pythonの組み込みCSVモジュールは、CSVファイルを小さなチャンクで読み取りおよび書き込む方法を提供するため、大きなファイルを使用することができます。リーダーオブジェクトをループで使用して、特定の数の行を一度に読み取ることができます。このようにして、より小さく、より管理しやすいチャンクで大きなファイルを処理できます。 CSVモジュール。 Writer Objectとそのwriterowメソッドを使用して1つの行を記述するか、Writerowsメソッドを作成して複数の行を一度に記述できます。書き込み前にファイルを書き込みモード(「W」)で開くことを忘れないでください。

Pythonのさまざまな区切り文字を持つCSVファイルを処理するにはどうすればよいですか?

PythonのCSVモジュールを使用すると、CSVファイルを読み書きするときに区切り文字を指定できます。リーダーとライターのオブジェクトは、デリミターパラメーターを取ります。これは、CSVファイルがデリミタとして使用する任意の文字に設定できます。 CSVファイルにはヘッダー行が含まれています。CSVモジュールのDicTreaderオブジェクトを使用してファイルを読み取ることができます。このオブジェクトは、各行を辞書として扱います。キーはヘッダー行の列名であり、値は各行のデータです。 pythonのCSVモジュールは、CSVファイルの引用フィールドを処理するためのQUOTE_MINIMAL、QUOTE_ALL、QUOTE_NONNUMERIC、およびQUOTE_NONE定数を提供します。読者またはライターオブジェクトを作成するときに、これらの定数を引用パラメーターとして指定できます。ファイルをバイナリモードで開いて、組み込みのCSVモジュールの代わりにUnicodeCSVモジュールを使用することでそれらを処理できます。このモジュールはCSVモジュールと同じように機能しますが、Unicode文字をサポートします。 Pythonのライブラリ。 CSVファイルをデータフレームに読み取り、FillNAメソッドを使用して、欠損値を特定の値または計算値で埋めることができます。 pythonは、CSVファイルをさまざまな形式に変換するためのいくつかのライブラリを提供します。たとえば、PANDASライブラリを使用して、CSVファイルをExcelファイル、SQLデータベース、またはJSONファイルに変換できます。 >

PythonのPandasライブラリを使用して、特定の列でCSVファイルをソートできます。 CSVファイルをデータフレームに読み取った後、sort_valuesメソッドを使用してデータフレームを1つ以上の列でソートできます。

PythonのPandasライブラリを使用した状態に基づいて、CSVファイルで行をフィルタリングできます。 CSVファイルをデータフレームに読んだ後、Booleanインデックスを使用して、条件に基づいてデータフレームをフィルタリングできます。

以上がPythonを使用してCSVファイルを使用して動作しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。