ホームページ >バックエンド開発 >Python チュートリアル >Pythonを使用して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,,FinancePythonは、CSV形式で他の形式のファイル処理を読み取り、書き込み、実行するための
csv
モジュールを提供します。組み込まれたライブラリは、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()メソッドへの引数として渡すことができ、同じ結果を達成できます。
上記のコードの出力は次のとおりです
Pythonを使用してCSVをJSONに変換する方法
モジュールは、これを達成するのに役立つCSV.DicTreaderクラスを提供します。 JSON
上記のコードの出力は次のとおりです
jsonpythonモジュールの両方を使用します。 json moduleのjson.load()関数は、jsonファイルをpython辞書に変換し、 csvmoduleのcsv.dictwiterクラスメソッドはpython辞書をCSVに変換するのに役立ちます。ファイル。
例を次に示します
JSONファイルをCSVに相当するものに変換するには、次の手順を適用しました。
employees.jsonファイルを読み取りモード を作成します
Pythonで大規模なCSVファイルを処理するにはどうすればよいですか? Pythonで大きなCSVファイルを処理することは、メモリの制約のために少し難しい場合があります。ただし、Pythonの組み込みCSVモジュールは、CSVファイルを小さなチャンクで読み取りおよび書き込む方法を提供するため、大きなファイルを使用することができます。リーダーオブジェクトをループで使用して、特定の数の行を一度に読み取ることができます。このようにして、より小さく、より管理しやすいチャンクで大きなファイルを処理できます。 CSVモジュール。 Writer Objectとそのwriterowメソッドを使用して1つの行を記述するか、Writerowsメソッドを作成して複数の行を一度に記述できます。書き込み前にファイルを書き込みモード(「W」)で開くことを忘れないでください。 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ファイルに変換できます。 ><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に変換するのに役立ち、<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>
例を見てみましょう:
を使用して、JSONをjsonにCSVに変換する方法
このセクションでは、JSONファイルからCSV形式にデータを変換する方法について説明します。これを達成するために、内蔵 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
json.load()関数を使用してpython辞書py_dict
csvモジュールは、この種のタスクに必要な関数とクラスを提供するため、CSVファイルを操作するのに非常に便利です。
また、上記の例に見られるように、ファイルをある形式から別の形式(CSVからJSONに)に変換する必要がある場合があることにも注意することが重要です。
Python CSVファイルに関するよくある質問(FAQ)
Pythonのさまざまな区切り文字を持つCSVファイルを処理するにはどうすればよいですか?
PythonのPandasライブラリを使用した状態に基づいて、CSVファイルで行をフィルタリングできます。 CSVファイルをデータフレームに読んだ後、Booleanインデックスを使用して、条件に基づいてデータフレームをフィルタリングできます。
以上がPythonを使用してCSVファイルを使用して動作しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。