On m'a parlé de la version PHP de Faker qui crée des données factices sur Twitter, donc quand j'ai cherché la version Pyhton, j'avais un plan, donc je l'ai installé. ..
% pip install faker
% faker --version
faker 4.0.2
make_fake_data.py
from faker.factory import Factory
Faker = Factory.create
fake = Faker()
fake.seed(0)
fake = Faker("ja_JP")
print(
fake.csv(
header=None,
data_columns=("{{name}}", "{{zipcode}}", "{{address}}", "{{phone_number}}"),
num_rows=10,
include_row_ids=False,
)
)
Essayez de l'exécuter en mode de débogage VS Code.
% env PTVSD_LAUNCHER_PORT=53546 /usr/local/opt/python/bin/python3.7 /Users/nandymak/.vscode/extensions/ms-python.python-2020.2.64397/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/launcher /Users/nandymak/dev/fake-data/make_fake_data.py
"Naoko Fujimoto","265-8376","23-19-7 Sansuji, Nishi-ku, Yokohama-shi, Oita Gomigaya Corp.948","92-4115-7815"
"Ryosuke Nagisa","989-9052","36-1-3-1 Tomihisa-cho, Shirako-cho, Chosei-gun, Saga Shirokane Urban 097","53-5139-3328"
"Sotaro Ito","520-8016","35-7-20, Kudan Minami, Mizuho-cho, Nishitama-gun, Préfecture de Kyoto","090-4719-6593"
"Kenichi Kato","627-4260","3-27-3 Raimon, Niijima-mura, tribunal de Senzoku de la préfecture d'Akita 684","090-3396-9477"
"Yoko Watanabe","812-5855","Marunouchi JP Tower 13-8-1, Edogawa-ku, Préfecture de Nara","090-1352-5601"
"Kumiko Yamagishi","836-9402","8-21-7 Nagahata, ville de Kokubunji, préfecture de Miyazaki Parc Hitotsubashi 510","090-3217-3008"
"Shota Inoue","226-1179","3-20-4 Gomigaya, Sakae-cho, Inba-gun, Préfecture d'Ishikawa Shibaura Urban 792","090-3022-5841"
"Kana Sasada","482-6715","Hauteurs Konan 150, 25-27-9, Rokubancho, Setani-ku, Yokohama-shi, Nagasaki","090-2375-9459"
"Mai Nakatsugawa","732-5083","13-23-11 Tanse, ville de Higashi-Kurume, préfecture de Nagano Maeyaroku Corp.960","080-9602-7142"
"Ryosuke Yamada","618-0001","27-7-18 Hirasuka, Chiyoda-ku, Cour de préfecture de Mie Marunouchi JP Tower 206","65-0300-8913"
Ce genre de données a été créé. C'est tellement comme ça, lorsque vous l'utilisez dans une entreprise, si vous ne dites pas à l'avance qu'il s'agit de données factices générées par Faker, des informations personnelles peuvent être divulguées et cela peut causer des histoires.
TSV ou DSV? Etc. Je dois trier les fonctions qui peuvent être utilisées (TODO).
faker.py
fake.tsv(header=None, data_columns=('{{name}}', '{{address}}'), num_rows=10, include_row_ids=False)
J'ai essayé de le résumer dans un tableau, mais j'ai abandonné car il semble qu'il y en a plus de 200. Comment générer des données de test à l'aide de Faker en Python
Pour le moment, voici quelques éléments que vous pourriez utiliser souvent. Vous pouvez probablement trouver la liste complète en consultant le site officiel Docs »Locales» Language ja_JP.
Nom de la méthode | sens | échantillon |
---|---|---|
address | adresse de rue | 38-9-5 Hirasuka, Hachijo-cho, Hachijojima, Préfecture de Kumamoto Chizuka Palace 161 |
ban | adresse | Numéro 6 |
building_name | Nom du bâtiment | parc |
building_number | Numéro du bâtiment? | 263 |
chome | Chome | 1-chome |
city | Municipal | Komae City |
city_suffix | Municipal(Valeur fixe?) | Ville |
country | Pays | Nouvelle Calédonie |
gou | Non. | N ° 15 |
postcode | Code postal | 288-2290 |
prefecture | Nom des préfectures | Préfecture de Tochigi |
street_address | adresse | 215, rue Kimura |
street_name | nom de rue | Rue Sasaki |
street_suffix | Suffixe de rue(※1) | Street |
town | Nom de la ville | Daiba |
zipcode | Code postal | 149-3866 |
Nom de la méthode | sens | échantillon |
---|---|---|
name | Nom complet(Caractères chinois) | Yui Aoyama |
last_name | Nom de famille(Caractères chinois) | Takahashi |
first_name | Nom(Caractères chinois) | Yumiko |
name_female | Nom féminin(Caractères chinois) | Tomomi Tanabe |
name_male | Nom masculin(Caractères chinois) | Yoichi Fujimoto |
last_name_male | Nom masculin(Caractères chinois)? | Nishinoen |
first_name_male | Nom masculin(Caractères chinois) | Atsushi |
last_name_female | Nom de famille féminin(Caractères chinois)? | Yoshida |
first_name_female | Nom de la femme(Caractères chinois) | Tomomi |
romanized_name | Nom complet(Romaji) | Akira Sasada |
last_romanized_name | Nom de famille(Romaji) | Ogaki |
first_romanized_name | Nom(Romaji) | Naoki |
first_romanized_name_male | Nom masculin(Romaji) | Manabu |
first_romanized_name_female | Nom de la femme(Romaji) | Rei |
kana_name | Nom complet(Kana) | Takahashi Miki |
last_kana_name | Nom de famille(Kana) | Saito |
first_kana_name | Nom(Kana) | Yoichi |
first_kana_name_male | Nom masculin(Kana) | Naoto |
first_kana_name_female | Nom de la femme(Kana) | ma |
J'ai vérifié la longueur de l'élément des données générées pour plonger dans le RDB. Je l'ai confirmé à Colaboratory.
# !pip install faker #Courir uniquement pour la première fois
import numpy as np
import pandas as pd
from faker.factory import Factory
Faker = Factory.create
fake = Faker()
fake = Faker("ja_JP")
test_data = []
x = 1000000 #Nombre de mesures
%timeit
for i in range(0, x):
test_data.append(len(fake.address())) #Spécifiez l'élément que vous souhaitez mesurer(fake.xxxxx())
a=np.mean(test_data)
b=np.max(test_data)
print('mean={}、max={}'.format(a,b))
Il est d'environ 50 caractères au maximum dans 1 million de cas.
mean=26.205511、max=53
Je l'ai essayé plusieurs fois, mais 55 était le maximum, donc il semble bon de penser à 64 caractères. ** Veuillez noter que ce n'est pas le nombre d'octets. ** **
Quant à mes devoirs, je voudrais créer une instruction "CREATE TABLE" et un WRAPPER qui génère une instruction "INSERT" afin que je puisse créer une table en RDB après avoir spécifié les éléments requis. ~~ * Vous devez connaître le nombre de chiffres et d'attributs du nom d'élément que Faker recrache pour chaque méthode. ~~
Pour le moment, j'aurais dû pardonner ici pour aujourd'hui.
Recommended Posts