La librairie Faker sous Python
Générez rapidement des jeux de données avec Faker pour vos tests
Les données constituent une matière première indispensable dans le processus de développement, qu'il s'agisse de commerce en ligne,
d'application de gestion ou encore de modélisation. Si bon nombre de plateformes proposent des datasets en libre accès, la recherche du candidat
idéal peut s'avérer consommatrice de temps. Dans cet article nous allons évoquer la librairie Faker, qui vous permettra de générer les
données dont vous aurez besoin.
La documentation en ligne étant bien détaillée, nous ne reviendrons, bien sûr, pas sur l'ensemble des possibilités offertes par cette librairie.
Notre objectif est de vous la faire connaitre, aussi, si vous voulez en savoir plus, n'hésitez pas à consulter la doc :
documentation Faker
Il faut savoir enfin que Faker existe également pour Perl, Java et Ruby.

Disponible dans de nombreux langages
Les noms, prénoms et coordonnées sont fortement dépendantes du pays d'origine. Faker permet de choisir le pays sur la base duquel seront générées les informations. Ainsi la génération d'une adresse française pourra s'implémenter ainsi :
pip install Faker
fake_fr = Faker(['fr-FR'])
print(*[fake_fr.street_address(),
fake_fr.postcode(),
fake_fr.city()])
Le résultat obtenu :
55, boulevard de Normand 55481 Guichard
Tout type de données
Outre les coordonnées postales que nous venons de voir, la librairie Faker permet de générer bien d'autres types d'informations. Celles-ci ont été catégorisées en providers. Ainsi vous pourrez générer des profils de personnes, leurs coordonnées bancaires, mais aussi des positions géographiques, des banques, des infos propres à des clients internet (mail, noms de domaine, adresse IP, etc ...) et bien d'autres types de données.
Un exemple
En guise d'illustration nous allons générer un dataframe pandas composé de clients pour lesquels nous voulons les informations suivantes :
nom, prénom, date de naissance, email, pays, société et type d'abonnement. Cette dernière information n'est pas une information standard
Faker mais nous voulons que nos clients soient rattachés a un type d'abonnement parmi trois possibles : basic, smart et pro.
Nous allons donc ajouter un provider dynamique personnalisé.
#Installons Faker si ce n'est deja fait
pip install Faker
#Nous importons ensuite les librairies necessaires
import pandas as pd
from faker import Faker
from faker.providers import DynamicProvider
#Nous instancions Faker
fake = Faker()
#Nous creons notre provider abonnement ...
abonnement_provider = DynamicProvider(
provider_name="abonnement",
elements=["basic", "smart", "pro"],
)
#... puis l'ajoutons a notre instance Faker
fake.add_provider(abonnement_provider)
#Nous generons notre base (ici 2000 personnes)
profiles = []
for _ in range(2000):
profile = []
profile.append(fake.first_name())
profile.append(fake.last_name())
profile.append(fake.date_of_birth())
profile.append(fake.email())
profile.append(fake.country())
profile.append(fake.company())
profile.append(fake.abonnement())
profiles.append(profile)
#Nous convertissons enfin en dataframe Pandas
df_profiles = pd.DataFrame(profiles)
df_profiles. columns = ['prenom', 'nom', 'date_naissance',
'email', 'pays', 'societe',
'abonnement']
df_profiles.head()

Crédits
L'illustration associée à cet article est à mettre au crédit de : Designed by pikisuperstar / Freepik
Retrouvez dans la rubrique "Nos datasets" toutes les données dont vous aurez besoin pour tester et pratiquer !