4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】ダミーデータ作成【Faker】

Last updated at Posted at 2022-01-01

テスト等で使用するダーミーデータ作成ができるFakerについて紹介します。

使用準備

pipでFakerをインストールします。

pip install faker

実装

ダミーデータの作成

from faker import Faker
fakegen = Faker('ja_JP')
name = fakegen.name() #名前

Fakerはロケールを設定できます。
日本語を使用したい時はFaker('ja_JP')を設定します。
英語を使用したい時は、Faker('en')を設定します。

他言語も設定できます。
詳しくはこちら↓

作成可能な項目

作成可能な項目はこちら↓に分かりやすくまとめてあります。

乱数の生成

乱数の生成はFakerではなくNumpyから生成できます。

import numpy as np
np.random.randint(0,100)

作成オプション

文字列の長さ

文字列の長さを制限するにはmax_nb_charsを引数に設定します。
40文字以下の文字列を作成するには↓のように設定します。

text = fakegen.text(max_nb_chars=40)

選択肢を指定し、ランダムに生成

↓のようにあらかじめ設定した選択肢からランダムに生成できます。

  • 性別
  • プログラミング言語
    • python
    • php
    • java
    • html

ext_word_listを設定することでそのリストから生成するように制限できます。

fakegen.word(ext_word_list=['', ''])
fakegen.word(ext_word_list=['python', 'php', 'java', 'html'])

重複なし

重複なしのデータを作成する場合は、uniqueを項目名の前につけます。

city = fakegen.unique.city()

当然ですが、
uniqueオプションは、大量にデータ生成をするとUniquenessExceptionというExceptionを吐きます。
ユニークな値が尽きたことを意味します。

適当なタイミングで下記コードを差し込むと、UniquenessExceptionが回避できます。
が、重複する値が存在する結果が出力されます。

fakegen.unique.clear()

エクセル化

エクセルまたはcsvにしたい時はデータをDataFrame化します。

faker_list = []
# データを100個作成する
for i in range(100):
    dataList = []

    name = fakegen.name()
    dataList.append(name)

# データフレーム化
df = pd.DataFrame(faker_list)
df.to_excel('../test.xlsx', index=False, header=False)
4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?