[解決済み] Faker pythonで姓と名を使ったメールアドレスを生成する
2022-03-05 03:21:13
質問
人物データからなるpandasデータセットを生成しようとしています。PythonのFakerライブラリを使用しています。姓と名を用いて有効な電子メールアドレスを生成する方法はありますか?
import pandas as pd
import numpy as np
import os
import random
from faker import Faker
def faker_categorical(num=1, seed=None):
np.random.seed(seed)
fake.seed_instance(seed)
output = []
for x in range(num):
gender = np.random.choice(["M", "F"], p=[0.5, 0.5])
output.append(
{
"First name": fake.first_name_male() if gender=="M" else
fake.first_name_female(),
"Last name": fake.last_name(),
"E-mail": fake.ascii_email(),
})
return output
解決方法は?
Fakerの
domain_name
メソッドと文字列フォーマットを使って、すでに生成された値と並べて表示することができます。
first_name = fake.first_name_male() if gender =="M" else fake.first_name_female()
last_name = fake.last_name()
output.append(
{
"First name": first_name,
"Last Name": last_name,
"E-mail": f"{first_name}.{last_name}@{fake.domain_name()}"
}
)
より完全なアプローチでは ファクトリーボーイ を追加しました。
from factory import DictFactory, LazyAttribute
from factory.fuzzy import FuzzyChoice
from factory import Faker
class PersonDataFactory(DictFactory):
first = LazyAttribute(lambda obj: fake.first_name_male() if obj._gender == "M" else fake.first_name_female())
last = Faker("last_name")
email = LazyAttribute(lambda obj: f"{obj.first}.{obj.last}@{fake.domain_name()}")
_gender = FuzzyChoice(("M", "F"))
class Meta:
exclude = ("_gender",)
rename = {"first": "First Name", "last": "Last Name", "email": "E-mail"}
PersonDataFactory()
というような結果になります。
{'First Name': 'Albert',
'Last Name': 'Martinez',
'E-mail': '[email protected]'}
関連
-
[解決済み] バニラフォーラムでメールテンプレートをテーマ化する方法は?
-
[解決済み] Faker pythonで姓と名を使ったメールアドレスを生成する
-
[解決済み】Pythonを使ってGmailをプロバイダにしたメールを送信するには?
-
[解決済み】PythonでHTMLメールを送信する方法
-
[解決済み】メールの件名の長さの制限について教えてください。
-
[解決済み】mailtoの本文に改行を入れる。
-
[解決済み】膨大な数のメールがあるlinuxのメールボックスをパージするにはどうしたらいいですか?[クローズド]
-
[解決済み] jQueryとregexを使ったメールアドレスの検証
-
[解決済み] メールのmultipart/alternativeとmultipart/mixedの比較
-
[解決済み] Sender、From、Return-Pathの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] バニラフォーラムでメールテンプレートをテーマ化する方法は?
-
[解決済み] Gmailの送信者ヘッダーを使用した「このメッセージは、次のユーザーによって送信されていない可能性があります」の回避策
-
[解決済み] 暗号化されたS/MIMEメッセージを復号化せずに、署名もされているか確認する方法
-
[解決済み] Faker pythonで姓と名を使ったメールアドレスを生成する
-
[解決済み] メールアドレスの大文字と小文字は区別されますか?
-
[解決済み] [Solved] プログラムで送信したメールが自動的にスパムとしてマークされないようにするにはどうしたらいいですか?
-
[解決済み】ポート465とポート587の違いは何ですか?
-
[解決済み】mailtoの本文に改行を入れる。
-
[解決済み】膨大な数のメールがあるlinuxのメールボックスをパージするにはどうしたらいいですか?[クローズド]
-
[解決済み] Sender、From、Return-Pathの違いは何ですか?