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で大量のデータを処理する検証などをする際は、ぜひ使ってみてください!
コメント