【Python】100万件のテストデータを作成する(DataFrame)

python Python
この記事は約3分で読めます。
スポンサーリンク

Pythonで大量のテストデータを使ったテストをしたいことってありますよね?

今回はそんな時に簡単にテストデータを作成できるPythonプログラムを書いてみました。
下記コードをJupyterなどにコピーして実行すれば簡単に100万規模のDataFrameが作れます。

もちろん、csvやparquetなどのファイルに出力することも可能です。

Pythonで大量のテストデータを作成する

以下のコードをJupyterにコピーして実行します。

import pandas as pd
import pandas as pd
import random
import datetime

#作成するテストデータの件数
num_rows = 1000000
#テスト日時の範囲
start_date = datetime.datetime(2024, 4, 1)
end_date = datetime.datetime(2025, 1, 31)

# データフレームの作成
data = {'testdt': [], 'pattern': [], 'value': []}

for _ in range(num_rows):
    # テスト日時を生成
    testdt = pd.Timestamp(start_date) + pd.Timedelta(seconds=random.randint(0, (end_date - start_date).total_seconds()))
    data['testdt'].append(testdt)
    # パターン作成
    result = random.choice(['ptn1','ptn2', 'ptn3', 'ptn4'])
    data['pattern'].append(result)
    #数値の作成
    value = random.choice([10,20,30,40])
    data['value'].append(value)

df = pd.DataFrame(data)
#CSVに出力する場合
#df.to_csv('testdata.csv')
#parquetに出力する場合
#df.to_parquet('testdata.parquet')

parquet出力時の注意点

parquetファイルに出力したい場合は、pandasだけでは出力できません。
以下のコマンドで[pyarrow][fastparquet]をインストールする必要があります。

pip install pyarrow
pip install fastparquet

コードの実行結果は以下の通りです。

プログラム内のnum_rowsのテストデータ作成件数を変更すれば、変更した件数のデータが作成されます。テスト日時の範囲も好きに変更できます。また、今回は項目としてtestdt,pattern,valueの3項目だけのDataFrameですが好きな項目を追加で書くこともできます。

CSVに出力する場合は#df.to_csv(‘testdata.csv’)の部分のコメントアウトを解除。
parquetに出力する場合は#df.to_parquet(‘testdata.parquet’)の部分のコメントアウトを解除。

pythonで大量のデータを処理する検証などをする際は、ぜひ使ってみてください!

コメント

タイトルとURLをコピーしました