0
0

はじめに

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ファイルを作成する方法を紹介しました。
誰かの役に立てば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0