今日は、とても面白くなりそうなFakerモジュールについて学びます。
faker モジュールの紹介
Fakerモジュールは、名前、年齢、場所などのランダムな属性を含むランダムなデータを生成するために使用されます。
さて、なぜフェイクデータが必要なのでしょうか?データベースの欠損値をダミーデータで埋めるため、あるいは単純にアルゴリズムをテストするためにフェイクデータが必要になるかもしれません。
faker モジュールのインポート
faker ライブラリの様々な機能やメソッドを調べるには、まずそれをインポートする必要があります。
import faker library がエラーを投げる場合は、 pip コマンドを使用してライブラリをインストールします。
ライブラリをインポートするには、以下のコードを使用します。
|
1
|
from faker import Faker
|
フェイクデータを作成する
フェイクデータを作成するには、まず Faker ライブラリの faker オブジェクトを作成し、そのオブジェクトに様々な関数を適用してフェイクランダムデータを取得する必要があります。
以下のコードでは、faker.name 関数を使ってランダムな名前を出力しています。
|
1
2
|
faker = Faker()
print(faker.name())
|
より分かりやすくするために、同じ関数を使って5つのランダムな名前を表示してみましょう。
そのコードと出力は以下のとおりです。
|
1
2
3
|
faker = Faker()
for i in range(5):
print(faker.name())
|
上のコードの出力は以下のように表示されます。
Stephanie RiveraGina MorganElizabeth GarciaJoanne CollierJessica Berry |
異なる言語でフェイクデータを作成する
作成した Faker オブジェクトに定義することで、異なる言語のフェイクデータを生成することもできる。
ここでは、ヒンディー語のデータを生成してみましょう。
そのためのコードを以下に示す。
|
1
2
3
|
faker1 = Faker('hi_IN')
for i in range(5):
print(faker1.name())
|
ここで宣言した faker1 オブジェクトはヒンディー語です。
ですから、このオブジェクトを作成して、ダミーの名前を表示させると、次のように表示されます。
पाटिल, इशानलाला, जयदेवऐश्वर्या लालाललित गणेशचेतना मल्लिक |
フェイクテキストを生成する
同じオブジェクトを使って、text関数を使って、テキストや文章を生成することができます。
そのためのコードを以下に示します。
|
1
2
|
faker = Faker()
print(faker.text())
|
その出力は以下のようになります。
Big thought American. Per red plan hundred language test. Language early bill citizen total if officer because. Example practice other street newspaper kid level. |
偽の表形式データを生成する
それでは、python の pandas ライブラリの dataframes という形式で、大量のデータを作成してみましょう。
複数の種類のデータを収集するために、作成されたフェイカーオブジェクトの profile 関数を使用します。
そのためのコードを以下に示します。
|
1
2
3
4
|
import pandas as pd
faker = Faker()
data = [faker.profile() for i in range(10)]
df = pd.DataFrame(data)
|
作成したdataframeの最初の5つのデータを表示します。
その結果、以下のように表示されます。

この記事もチェック:PythonのPlotlyライブラリを使ってデータを地図上に表示させる方法
まとめ
この記事では、Fakerライブラリを使って、英語だけでなく様々な言語のフェイクデータを生成する方法を見ました。
同じモジュールを使って完全なデータセットを生成し、そのデータセットをMLモデルへの適用を含む様々な用途に使用することができます。
ご一読ありがとうございました。