Créez des données de test comme ça avec Python (partie 1)

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é. ..

Installation

% pip install faker
% faker --version
faker 4.0.2

Création de données d'essai

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.

Outre CSV

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)

Ce que j'ai remarqué

Éléments pouvant être spécifiés

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.

Système d'adresse (faker.providers.address)

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

Système de noms personnels (faker.providers.person)

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

Vérifier la longueur de l'article

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. ** **

Générer SQL pour insertion (TODO)

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

Créez des données de test comme ça avec Python (partie 1)
Traiter les données Pubmed .xml avec python [Partie 2]
Générer des données de test japonais avec Python Faker
Jugement des nombres premiers avec Python
Analyse de données avec python 2
Créez une application qui devine les étudiants avec Python
Créer une page qui se charge indéfiniment avec python
Jugement des nombres premiers avec python
Analyse de données avec Python
Créer une figure fractale avec python part1 (joint de Shelpinsky)
[Python] Créer un tableau structuré (stocker des données hétérogènes avec NumPy)
Notez qu'écrire comme ça avec ruby c'est écrire comme ça avec python
Un serveur qui fait écho aux données POSTées avec flask / python
Traitement d'image avec Python (partie 2)
Exemple de données créées avec python
Etudier Python avec freeCodeCamp part1
Images en bordure avec python Partie 1
Grattage avec Selenium + Python Partie 1
Créer un gif 3D avec python3
Obtenez des données Youtube avec python
Etudier Python avec freeCodeCamp part2
Traitement d'image avec Python (partie 1)
Résolution de Nampre avec Python (partie 2)
Traitement d'image avec Python (3)
Grattage avec Selenium + Python Partie 2
Créer un répertoire avec python
Lire des données json avec python
Un mémo qui lit les données de dashDB avec Python et Spark
Je veux pouvoir analyser des données avec Python (partie 3)
Je veux pouvoir analyser des données avec Python (partie 1)
Créons un script qui s'enregistre avec Ideone.com en Python.
Je veux pouvoir analyser des données avec Python (partie 4)
Je veux pouvoir analyser des données avec Python (partie 2)
Développement piloté par les tests avec Django Partie 3
Jouez des nombres manuscrits avec Python Partie 1
Créer une animation de tracé avec Python + Matplotlib
Développement piloté par les tests avec Django Partie 4
Créer Awaitable avec l'API Python / C
Application de Python: Nettoyage des données Partie 1: Notation Python
Développement piloté par les tests avec Django Partie 6
[Automatisé avec python! ] Partie 1: fichier de configuration
Application Python: Traitement des données # 3: Format des données
Développement piloté par les tests avec Django Partie 2
Créez un environnement virtuel avec Python!
[Python] Obtenez des données économiques avec DataReader
Structure de données Python apprise avec la chimioinfomatique
Sortie du journal de test unitaire avec python
Créez des données audio bruyantes avec SoX
Visualisez facilement vos données avec Python seaborn.
Automatisez des tâches simples avec Python Part0
Application Python: visualisation de données partie 1: basique
[Automatisé avec python! ] Partie 2: Fonctionnement des fichiers
Traiter les données Pubmed .xml avec python
Créer des pages github avec lektor partie 1
Analyse de données à partir de python (visualisation de données 1)
Développement piloté par les tests avec Django Partie 1
Analyse de données à partir de python (visualisation de données 2)
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame