如何用Faker来创造假数据

CDA数据分析师 出品

1. 目标

有的时候需要对某一种数据结构(布尔,浮点,字符,整数)来创造一些数据(名字,地址,颜色,邮件,电话号码,地址)从而可以来测试某一个某一个python库或者自己写的一些代码。但是有的时候造这样的数据是需要时间的,并且可能不知道如何下手。可能你会想:有没有什么快速的方法来创建这种数据?

有这样一个包,可以用一条代码就可以创造出你想要的假数据

fake.profile()

Faker就是这样一个包,一个可以用来生成随机的数据的包,一个可以依照你的需要创造特定的数据类型或者独特的数据特征的包,一个可以生成地点或者语言的包。

2. Faker的基本操作

安装

pip install Faker

导入

from faker import Faker

一些基本的使用方法

fake.color_name()‘SeaGreen’>>> fake.name()‘Vanessa Schroeder’>>> fake.address()‘3138 Jennings Shore\nPort Anthony, MT 90833’>>> fake.job()‘Buyer, industrial’>>> fake.date_of_birth(minimum_age=30)datetime.date(1906, 9, 18)>>> fake.city()‘Rebeccastad’

假如说你是一个小说作家,你想生成一些角色,但是发现给这些角色取名很是困难,可以使用以下

name = fake.name()>>> color = color = fake.color_name()>>> city = fake.city()>>> job = fake.job()>>> print(‘Her name is {}. She lives in {}. Her favorite color is {}. She works as a {}’.format(name, city,color, job))

结果

Her name is Natalie Gamble. She lives in East Tammyborough. Her favorite color is Magenta. She works as a Metallurgist

使用Faker可以快速生成一些假数据

3. 如果我需要一些地点相关的数据呢

幸运的是,我们可以指定数据的地点,也许你生成的数据来源于意大利,这个时候,可以将这个地点的具体信息加入faker

fake = Faker(‘it_IT’)for _ in range(10): print(fake.name())

结果

Lando Bertoli-Bulzoni Danilo Gianvecchio Dott. Margherita Veneziano Bianca Morabito Alfredo Rossetti Claudia Chechi Dott. Gastone Loredan Dott. Fulvio Russo Camilla Crisafulli-Gentileschi Agnolo Gioberti

或者输入多个地点

fake = Faker([‘ja_JP’,‘zh_CN’,‘es_ES’,‘en_US’,‘fr_FR’])for _ in range(10): print(fake.city())

结果

Ceuta Juanhaven 佳市 East Sarah 山武郡横芝光町 川崎市宮前区 Blondel-sur-Pottier West Christine Lake Amandahaven Weekshaven

4. 创建字符型数据

4.1 创建随机的文字

fake.text()‘Lay industry reach move candidate from local spring. Wind someone really but. One rock fund different down own.’

使用日语来创建随机的文件

fake = Faker(‘ja_JP’)>>> fake.text()‘普通の器官証言する仕上げ鉱山癌。カラム索引障害自体今ブラケット創傷。細かい見出し見出し目的自体持っていました。\nピックバケツリンク自体。職人サワーカラム人形自体。癌ブランチ普通のデフォルト同行ヘア不自然な。\nあった偏差〜偏差今特徴敵。バストスパン拡張助けて。\nスマッシュ彼女ボトル隠す品質隠すサンプル。ヘアパイオニアスマッシュ風景。\nパン発生する装置尊敬する。偏差省略自体。’

4.2 从给定的词语中生成随机

fake = Faker()my_information = [‘dog’,‘swimming’, ‘21’, ‘slow’, ‘girl’, ‘coffee’, ‘flower’,‘pink’]fake.sentence(ext_word_list=my_information)

第一次运行

‘Girl slow slow girl flower flower girl.’

第二次运行

‘Flower 21 flower coffee flower dog.’

5 快速生成一个profile

fake = Faker()fake.profile()

从这个结果我们可以看出一个人的信息可以很轻易的被生成,包括邮箱,ssn号,用户名,和网站。

我们也可以用生抽一个dataframe。

import pandas as pdfake = Faker([‘it_IT’,‘ja_JP’, ‘zh_CN’, ‘de_DE’,‘en_US’])profiles = [fake.profile() for i in range(100)]pd.DataFrame(profiles).head()

6 生成随机的python数据类型

如果只关心数据类型,而不考虑数据的内容,我们也可以生成随机的数据类型。

#布尔值>>> fake.pybool()False#一个有着list,包含5种不同的类型的数值>>> fake.pylist(nb_elements=5, variable_nb_elements=True)[‘TiZaWQDCzVIgSALOSKJD’, 8100, ‘hZTFGZpYVwJUcGZUoauG’, Decimal(’-3512.1951’), 37442800222.8852, ‘XIxdbnwYMfOJDsZlaowZ’]#一个5位小数到6位小数的数字>>> fake.pydecimal(left_digits=5, right_digits=6, positive=False, min_value=None, max_value=None)Decimal(‘92511.722977’)

创造数据是不是很简单,你学会了么?

发布了2708 篇原创文章 · 获赞 267 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/yoggieCDA/article/details/105387923