Pythonでダミーデータを生成するFakerを使ってみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。データアナリティクス事業本部のおざわ(じ)です。

そろそろクリスマスですね。私が住んでいる仙台では、「光のページェント」という恒例イベントが開催されています。映画や小説に出てくる定禅寺通りのケヤキ並木がライトアップされてかなり綺麗です。今年は12月25日までなので、お近くに来られた方はぜひ一度ご覧になってみてください。

はじめに

今回はダミーデータを生成するのに便利なFakerを使ってみましたという小ネタになります。

Fakerはその名の通りファイク(偽)のデータを生成してくれます。

それっぽい疑似データを手軽に生成することができます。

ダミーデータを作ってみる

まずランダムなテキストを出してみます。

faker.py

from faker import Faker
fake.text()
# 'Low theory bill with society away.\nState avoid trade doctor. Various set need between edge ground. Score debate kitchen cold morning without care money.'

簡単ですね!

日本語への対応

localeを指定しておけば、住所も名前もそれっぽいものが出てきます。 テキストは完全に謎文章になっていますね。

address_name.py

fake = Faker('ja-JP')
fake.address()
# '京都府印西市橋場9丁目6番13号 シティ港南742'

fake.name()
# '佐藤 真一'

fake.text()
# '持ってる行進教会知覚ブラケットバナーログ風景。追放する衝突ダッシュ見出しフレーム数字指名バス。\nインチ賞賛する意図発生する。極端な欠乏文言ダイヤモンドスペル偏差リハビリ。\nニュース埋め込むは学生販売トスリニア葉。腐った織る。分割協力織る保持する軸ソース。\n部隊尿あった通行料金陶器普通の。探査脊椎行進。'

Number

もちろん数値も出してくれます。 fix_lenとdigitsを指定すると指定した桁数で出してくれます。

random_num.py

fake.random_number()
#125

fake.random_number(fix_len=True, digits=10)
#42349872221

fake.pydecimal()
# Decimal('-2655724170.691588313630')

fake.pydecimal(positive=True)
# Decimal('4364927640558563616865537100009028532825300297855046886885294382567960593809042.980077713882705473321305583737474478908716233173483511319759944073537914992898415')

Date, DateTime

日付も簡単です。年齢の範囲を指定してその中でランダムな誕生日を出力したりもできます。

date.py

fake.date()
# '2002-04-13'

fake.date_time().strftime("%Y/%m/%d %H:%M:%S")
# '1924/04/02 00:00:00'


fake.date_of_birth(minimum_age=20, maximum_age=27)
# datetime.date(2002, 3, 2)

Company

会社名もそれっぽいのが出てきます。

company.py

fake.company()
# '林運輸有限会社'

その他

他にもユーザーエージェントやISBN、Jobs(職業)などおもしろいものもたくさんあります。

job.py

fake.job()
# 'エンジニア演奏家'

最後に

今回はテスト用データなどの生成に便利なFakerの紹介でした。ご紹介した内容以外にも色々とありますので、ぜひドキュメントを参考になさってください。