Python読み取り書き込みCSVファイル
この投稿では、PythonでCSVファイルを読み書きする方法を見ていきます。例では、CSVモジュールとパンダを使用しています。
PythonはCSVモジュールを使用してCSVファイルを読み取ります
このコード例は、orders.csv
という名前のファイルを読み取ります データをループします:
import csv
f = open("orders.csv", "rt")
orders = csv.reader(f)
for order in orders:
print(order)
f.close()
orders.csvの出力:
['OrderID', 'CustomerID', 'OrderDate']
['10248', '4', '10/02/2020']
['10249', '2', '10/02/2020']
['10250', '7', '10/02/2020']
DictReader
の使用 メソッドCSVファイルの各行は、辞書の行として表され、列ヘッダーがキーになります。
import csv
orders = csv.DictReader(open("orders.csv"))
for order in orders:
print(order)
orders.csvの出力:
{'OrderID': '10248', 'CustomerID': '4', 'OrderDate': '10/02/2020'}
{'OrderID': '10249', 'CustomerID': '2', 'OrderDate': '10/02/2020'}
{'OrderID': '10250', 'CustomerID': '7', 'OrderDate': '10/02/2020'}
Pandasを使用するには、最初にPandasライブラリをインストールする必要があります。
インストールするには、次のコマンドを実行します:pip3 install pandas
。
import pandas
orders = pandas.read_csv('orders.csv')
print(orders)
orders.csvの出力:
OrderID CustomerID OrderDate
10248 4 10/02/2020
10249 2 10/02/2020
10250 7 10/02/2020
Pandasを使用したPython書き込みCSV
from pandas import DataFrame
import pandas as pd
order = pd.DataFrame({'OrderID': ['10251', '10252', '10253'],
'CustomerID': ['5', '1', '8'],
'OrderDate': ['11/02/2020', '11/02/2020', '11/02/2020']})
order.to_csv('newOrders.csv', index=False)
newOrders.csvの出力:
OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
csvファイルに書き込むときのデフォルトモードは'w'
です 。既存のCSVファイルにデータを追加する場合は、追加モードを使用する必要があります。 mode='a'
from pandas import DataFrame
import pandas as pd
order = pd.DataFrame({'OrderID': ['10254'],
'CustomerID': ['3'],
'OrderDate': ['11/02/2020']})
order.to_csv('newOrders.csv', mode='a', index=False, header=False)
newOrders.csvの出力:
OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
10254,3,11/02/2020
CSVモジュールを使用したPython書き込みCSV
N.B.最初の行は列ヘッダーとして使用されます
import csv
with open('orders.csv', 'w', newline='') as file:
order = csv.writer(file)
order.writerow(['OrderID', 'CustomerID', 'OrderDate'])
order.writerow(['10251', '6', '11/02/2020'])
order.writerow(['10252', '9', '11/02/2020'])
order.writerow(['10253', '5', '11/02/2020'])
orders.csvの出力:
OrderID,CustomerID,OrderDate
10251,6,11/02/2020
10252,9,11/02/2020
10253,5,11/02/2020
csvモジュールを使用して既存のcsvファイルに追加する場合は、'a'
を渡す必要があります。 open()
へのパラメータ 方法。また、「見出し」をスキップする必要があります。
例:
with open('orders.csv', 'a', newline='') as file:
order = csv.writer(file)
order.writerow(['10251', '6', '11/02/2020'])
DictWriterを使用してCSVファイルを書き込む
DictWriter
を使用することもできます csv
のメソッド CSVファイルを作成および書き込むクラス。
import csv
with open('orders.csv', 'w', newline='') as file:
fieldnames = ['OrderID', 'CustomerID', 'OrderDate']
order = csv.DictWriter(file, fieldnames=fieldnames)
order.writeheader()
order.writerow({'OrderID': '10251', 'CustomerID': 7, 'OrderDate': '11/02/2020'})
order.writerow({'OrderID': '10252', 'CustomerID': 3, 'OrderDate': '11/02/2020'})
order.writerow({'OrderID': '10253', 'CustomerID': 1, 'OrderDate': '11/02/2020'})
orders.csvの出力:
OrderID,CustomerID,OrderDate
10251,7,11/02/2020
10252,3,11/02/2020
10253,1,11/02/2020
-
Pythonを使用してPDFをCSVに変換する
Pythonは、パッケージの膨大なライブラリでよく知られています。ライブラリの助けを借りて、PDFをCSVファイルに変換する方法を見ていきます。 CSVファイルは、一連の行と列とともにフレーム化されたデータのコレクションに他なりません。 PythonライブラリにはPDFをCSVに変換するためのさまざまなパッケージがありますが、Tabula-pyモジュールを使用します 。 tabula-pyの大部分はJavaで記述されており、最初にPDFドキュメントを読み取り、PythonDataFrameをJSONオブジェクトに変換します。 tabula-pyを使用するには、システムにJavaがプリインスト
-
Pythonopenpyxlモジュールを使用してExcelファイルの読み取りと書き込み
Pythonは、Excelファイルを操作するためのopenpyxlモジュールを提供します。 このモジュールでは、Excelファイルの作成方法、書き込み方法、読み取り方法などを実装できます。 openpyxlモジュールをインストールするには、コマンドプロンプトでこのコマンドを記述できます pip install openpyxl シートにタイトル名を付けたい場合 サンプルコード import openpyxl my_wb = openpyxl.Workbook() my_sheet = my_wb.active my_sheet_title = my_sheet.title print