Python >> Tutoriel Python >  >> Python

Comment générer des données de test en Python

Voici tout ce que vous devez savoir sur la bibliothèque de code> pour générer des données de test en Python.

Cet article vous présente une bibliothèque utile pour générer des données de test en Python. Si vous créez une application conçue pour traiter des données, vous avez besoin d'un ensemble de données de test approprié pour vous assurer que tous les bogues ont été résolus.

Mettre la main sur les données est la première étape de tout projet d'analyse de données. Les données peuvent vous être fournies directement par un client. Si vous avez de la chance, vous trouverez peut-être des données pertinentes accessibles au public. Ou vous devrez peut-être sortir et le récupérer vous-même. Le scraping Web en Python est un excellent moyen de collecter des données. Une autre option consiste à produire vos propres données, que nous couvrons ici.

Si vous recherchez du matériel d'apprentissage pour acquérir une formation en science des données, consultez notre cours "Introduction à Python pour la science des données" qui est parfait pour les débutants. Il comprend de nombreux exercices interactifs pour vous donner une expérience pratique de l'utilisation des données.

Faites-le pour le faire

faker est une bibliothèque Python conçue pour générer de fausses données, qui peuvent être utilisées pour former un algorithme d'apprentissage automatique ou tester une application. Cette bibliothèque peut être utilisée pour générer des données personnelles, des données d'entreprise, de fausses phrases de texte, des structures de données Python telles que des listes et des dictionnaires, etc. L'installation est rapide et facile depuis la ligne de commande avec pip .

.readthedocs.io.mcas.ms%2Fen%2Fstable%2F%3FMcasTsid%3D15600&McasCSRF=f1c8edf814c95e622ab9ae5c02b2e8930a651d57162d9c9ac02815e563192a2e">La documentation pour le code> contient des informations et des exemples utiles. Ici, nous commençons par générer des données personnelles. le code> classe du code> bibliothèque et instancier trois nouveaux objets :

>>> from code> import code>
>>> f_en = code>('en_US')
>>> f_de = code>('de_DE')
>>> f_jp = code>('ja_JP')

Comme nous l'avons fait ici, code>.code>() peut prendre une locale comme argument facultatif. La valeur par défaut est 'en_US' si aucun argument n'est fourni. Vous pouvez également fournir une liste avec plusieurs paramètres régionaux comme argument. À partir de là, nous pouvons générer des données personnelles de test en utilisant les nombreuses méthodes disponibles :

>>> print(f_en.name())
Cassandra Burch

>>> print(f_en.address())
680 Julie Glens Apt. 347
Lake Christina, AL 91444

>>> print(f_en.email())
[email protected]

Chaque fois que vous exécutez ces commandes, vous recevez des données différentes générées de manière aléatoire. Vous pouvez amorcer le générateur de nombres aléatoires à l'aide d'un nombre entier si vous souhaitez générer plusieurs fois les mêmes données de test. Notez également que les données ne sont pas nécessairement cohérentes. Le nom et l'adresse e-mail dans l'exemple ci-dessus font référence à des personnes différentes.

Un avantage de cette bibliothèque est sa capacité à générer des données de test réalistes pour différents pays. Examinons les résultats de certaines méthodes des autres objets que nous avons instanciés :

>>> print(f_de.name())
Dr. Ingrid Schäfer
 
>>> print(f_jp.address())
栃木県青梅市台東6丁目25番2号

Ici, nous voyons que le nom allemand comprend le titre de docteur et contient la lettre ä de l'alphabet allemand. L'adresse japonaise représente une adresse dans la préfecture de Tochigi et peut être composée de caractères hiragana, katakana et/ou kanji. Cette capacité à générer des caractères non latins est puissante pour tester des applications et des programmes qui doivent traiter des données textuelles de différents pays.

Il existe de nombreuses autres méthodes pour générer d'autres types de données. Essayez-en quelques-unes pour avoir une idée des types de données que vous pouvez générer. Par exemple, vous pouvez produire des intitulés de poste, des dates de naissance et des langues. Il existe des données de test pour les entreprises et pour les applications financières.

Vous pouvez même mélanger et assortir pour créer des résultats hautement personnalisés. Voici un exemple de combinaison de différents types de données pour générer un nom d'entreprise :

>>> print(f_en.company() + ' ' + f_en.company_suffix() + ', ' + f_en.city_prefix() + f_en.city_suffix() +' Branch')
Henry-Proctor Inc, Westmouth Branch

Types de données Python et structures de données

Lors de l'écriture d'une fonction, nous devons souvent tester la façon dont elle gère différents types de données. Par exemple, si vous écrivez une fonction pour traiter des données dans une liste, vous devez tester comment elle répond aux données dans un tuple. La bibliothèque code> fournit des fonctionnalités pour générer des données de test de différents types de données et structures Python. Au fait, voici un cours sur les structures de données Python en pratique si vous souhaitez en découvrir un.

Commençons par examiner différentes manières de générer des données de test :

>>> f = code>()
>>> print(f.pybool())
True

>>> print(f.pyint())
9638

>>> print(f.pystr())
svScHHdLPfjBhjyTdQSf

Il existe même une méthode pour générer le type de données decimal.Decimal . Ces méthodes ont des arguments facultatifs pour placer des contraintes sur les données de test générées.

Générons un flottant sous certaines contraintes :

>>> print(f.pyfloat(left_digits=3, right_digits=5, positive=True, min_value=500, max_value=1000))
679.72304

Si vous travaillez avec des données de date et d'heure, y compris des données de séries chronologiques, code> vous a couvert. Pour obtenir un objet datetime de test, procédez comme suit :

 >>> date_time = f.date_time()
>>> print(date_time.strftime('%Y-%m-%d %H:%M:%S'))
1971-05-03 03:14:00

Nous discutons de l'utilisation des données de date et d'heure dans cet article. Il existe même une méthode pour générer un ensemble de données de séries chronologiques de test, ce qui peut être extrêmement utile pour les projets d'analyse de données. Essayez d'exécuter f.time_series(); il renvoie un objet générateur. Vous pouvez reformuler ceci dans une liste en utilisant le list() intégré fonction; cela se traduit par une liste de tuples où le premier élément de chaque tuple est un objet DateTime et le second est un flottant. Consultez cet article pour plus d'informations sur les générateurs et ce cours sur les algorithmes intégrés à Python, si vous souhaitez du matériel d'apprentissage supplémentaire.

Nous pouvons générer un nom de fichier de test incluant le chemin comme suit :

>>> print(f.file_path(category='text', depth=5))
/rise/push/wish/expect/hundred/maintain.csv

Il existe plusieurs catégories parmi lesquelles choisir, ce qui modifie l'extension du fichier. Les structures de données Python, telles que les listes, peuvent être générées comme suit :

>>> print(f.pylist())
[714.68591737874, Decimal('901.82065835268977257514616953'), 4389, 'http://choi.biz/wp-content/main.html', 4457, 'KXmDevzyUWAXGMospgjR']

Notez qu'il y a un mélange de types de données dans la liste. Comme nous l'avons vu dans l'exemple de génération d'un flottant, vous pouvez spécifier certaines des propriétés de la liste avec des arguments optionnels. Il existe des méthodes similaires pour les tuples, les dictionnaires et les ensembles. Essayez-en quelques-unes pour voir ce que vous obtenez.

Données textuelles

Si vous souhaitez tester des programmes qui fonctionnent avec des données textuelles, code> a des fonctions pour générer des mots individuels et des phrases complètes. Un avantage de cette bibliothèque est qu'elle peut générer du texte dans de nombreuses langues. Cependant, les mots et les phrases sont générés de manière aléatoire et n'ont donc aucune signification sémantique.

Voici quelques exemples de certaines de ces fonctions en action à l'aide des objets que nous avons instanciés dans le premier exemple :

>>> print(f_en.word())
walk

>>> print(f_de.word())
steigen

>>> print(f_en.text())
Give student lose law. Interview responsibility event relationship election meeting him. Full person instead the stuff newspaper.

>>> print(f_jp.text(max_nb_chars=20))
フレームノート織るヘア柔らかい。

Il y en a quelques autres code> méthodes à mentionner si vous souhaitez générer des données de texte de test en Python. Le sentence() et sentences() permettent de générer respectivement une phrase unique et une liste de phrases. De même, le paragraph() et paragraphs() permettent de générer un seul paragraphe ou une liste de paragraphes. Ces méthodes sont similaires, mais la différence est que les méthodes de paragraphe génèrent plusieurs phrases, chacune séparée par un point. Toutes ces méthodes ont un argument facultatif pour spécifier la longueur du résultat.

Générer un jeu de données de test

Jusqu'à présent, nous avons montré principalement des exemples de génération de données individuelles, qu'il s'agisse de données personnelles, de données numériques ou de texte. Nous avons également expliqué comment générer des structures de données Python courantes telles que des listes, des tuples et des dictionnaires.

Cependant, vous avez besoin de plus que cela pour de nombreuses applications. Alors maintenant, nous vous montrons comment générer un jeu de données de test avec plusieurs enregistrements.

Pour générer un profil personnel de test complet, procédez comme suit :

>>> f = code>()
>>> profile = f.profile()

Ce profil contient un nom, un emploi, une adresse et une date de naissance générés aléatoirement, entre autres informations. Toutes les données sont stockées dans un dictionnaire Python. Vous pouvez personnaliser et compléter avec d'autres informations en ajoutant des données supplémentaires au dictionnaire comme suit :

>>> profile['credit card'] = f.credit_card_number()

Vous pouvez utiliser une boucle pour créer plusieurs profils et les ajouter à une liste pour générer un jeu de données complet. Un DataFrame pandas est un moyen pratique de stocker ces données, que vous pouvez créer facilement à partir de cette liste de dictionnaires.

Le format de valeurs séparées par des virgules (CSV) est un moyen courant de stocker des données. Avec la bibliothèque code>, vous pouvez facilement générer des données CSV de test en utilisant le csv() fonction. Cette fonction accepte plusieurs arguments pour personnaliser la quantité et le type de données. Voici un exemple de génération d'un en-tête, puis de 5 enregistrements avec un nom, une fonction et une adresse e-mail :

>>> csv_data = f.csv(header=('Name', 'Profession', 'email'), data_columns=('{{name}}', '{{job}}', '{{email}}'), num_rows=5)
>>> print(csv_data)
"Name","Profession","email"
"James Sutton","Pathologist","micheal432example.org"
"Jason Miller","Diagnostic radiographer","rachel617example.com"
"Kimberly Edwards","TEFL teacher","jasonmoore7example.net"
"Joshua Walton","Secretary, company","meagan166example.com"
"Dylan White","Intelligence analyst","tiffany73example.net"

La fonction json() est liée à ces deux éléments. Avec cela, vous générez un jeu de données de test au format JavaScript Object Notation (JSON), un moyen pratique de stocker des données dans une structure imbriquée. Cela peut également être personnalisé avec des arguments facultatifs.

Utiliser le code> en tant que générateur de données de test Python

Nous vous avons présenté la bibliothèque code> pour générer des données de test en Python. Il est très flexible et personnalisable, vous permettant de générer des données de test pour de nombreuses applications.

Nous avons un article séparé sur les 15 meilleures bibliothèques Python pour la science des données, et un générateur de données de test Python comme la bibliothèque code> est un autre excellent outil à ajouter à votre arsenal. Qu'il s'agisse de former un algorithme d'apprentissage automatique ou de tester un programme, code> dispose de nombreuses fonctions faciles à utiliser et hautement personnalisables pour faire le travail lorsque vous avez besoin de générer des données.