はじめに
Pythonで中身のある巨大なCSVファイルを作成する方法を紹介します。
ただし、この方法は作成するのに割と時間かかります。
もっといい方法があると思いますが、ご了承ください。
単純に中身のないモックデータを作成したいのであれば、こちらの記事で紹介した方法がおすすめです。
作り方
事前にpip install pandas
を実行してpandas
をインストールしておいてください。
import csv
import numpy as np
column_names = ["id", "name", "price", "category"]
data_types = [np.int64, np.object_, np.int64, np.object_]
num_rows = 40000000
data = []
for _ in range(num_rows):
row = []
for col, dtype in zip(column_names, data_types):
if dtype == np.int64:
row.append(np.random.randint(low=1, high=10000))
elif dtype == np.object_:
row.append(np.random.choice(["A使用量", "B使用量", "C使用量"]))
else:
raise ValueError(f"{dtype}は定義されていません")
data.append(row)
with open("mock_data.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(column_names)
writer.writerows(data)
40000000行のデータを作成しています。
40000000行のデータを作成するのに、約10分かかりました。
40000000行のデータは約1.3GBのファイルになります。
列のデータを適用に作成しましたが、必要であれば変更して使用してください。
おわりに
いつこのスクリプトが必要になるかわかりませんが、巨大なCSVファイルを作成する方法を紹介しました。
誰かの役に立てば幸いです。