📄

Pythonで中身のある巨大なCSVファイルを作成する

この記事は公開から2年以上経過しています。内容が古くなっている可能性があります。

はじめに

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

新着記事

関連ネットワーク(beta)

ドラッグで移動 / Ctrl+ホイールでズーム