Python中第三方库Faker的使用详解


Posted in Python onApril 02, 2022

背景介绍

今天介绍Python中一个超级神奇的库,99%人用过都喜欢它,剩下的1%没用过!

在如今的大数据时代,数据的价值可想而知。有时候为了做测试,需要模拟真实的环境,但是又不能直接使用真实数据,就需要我们认为制造一些数据出来。

对比Excel,我还是觉得Python制造这样的 "虚拟" 数据,更省时、省力。

周末,突然想到了曾今做过的这个问题,这里为大家做个复盘吧!

需求: 老板让模拟一批数据,用于项目实验,由于一些真实数据不能展示出来,我需要模拟一些数据,字段包括:姓名、所在省份、详细地址、手机号、身份证号、出生年月、邮箱等。

当然,这批数据肯定是需要你最终写入到Excel中,一次性交给老板的。那么,这样的需求,你会做吗?

实战:模拟1w条数据写入Excel

在讲述基础之前,直接上实战,让大家体会一下,如何将生成的模拟数据,最终写入到Excel文件中。

from faker import Faker
import pandas as pd
 
fake = Faker(["zh_CN"])
Faker.seed(0)

def get_data():
    key_list = ["姓名","详细地址","所在省份","手机号","身份证号","出生年月","邮箱"]
    name = fake.name()
    address = fake.address()
    province = address[:3]
    number = fake.phone_number()
    id_card = fake.ssn()
    birth_date = id_card[6:14]
    email = fake.email()
    info_list = [name,address,province,number,id_card,birth_date,email]
    person_info = dict(zip(key_list,info_list))
    return person_info


df = pd.DataFrame(columns=["姓名","详细地址","所在省份","手机号","身份证号","出生年月","邮箱"])
for i in range(10000):
    person_info = [get_data()]
    df1 = pd.DataFrame(person_info)
    df = pd.concat([df,df1])
df.to_excel("模拟数据.xlsx",index=None)

结果如下:

Python中第三方库Faker的使用详解

上述数据纯属模拟,如果雷同,请勿对号!

Python库讲解

这么好用的Python库,究竟应该怎么使用呢?

我们直接使用下面的代码,可以完成这个库的安装。

pip install Faker -i https://pypi.tuna.tsinghua.edu.cn/simple/

使用之前,使用如下代码,导入这个库。

from faker import Faker

在讲述写入到Excel之前,我们先分布讲述一下,每个函数的用法。

1. 生成姓名

fake = Faker(locale='zh_CN')
name = fake.name()
name

结果如下:

Python中第三方库Faker的使用详解

2. 生成详细地址

address = fake.address()
address

结果如下:

Python中第三方库Faker的使用详解

3. 生成所在省份

province = address[:3]
province

结果如下:

Python中第三方库Faker的使用详解

由于这个函数每次运行结果都不一样,所以我才用切片方式,生成省份。当然这里也有特定函数,生成省份。

fake.province()

结果如下:

Python中第三方库Faker的使用详解

4. 生成手机号

number = fake.phone_number()
number

结果如下:

Python中第三方库Faker的使用详解

5. 生成身份证号

id_card = fake.ssn()
id_card

结果如下:

Python中第三方库Faker的使用详解

6. 生成出生年月

birth_date = id_card[6:14]
birth_date

结果如下:

Python中第三方库Faker的使用详解

7. 生成邮箱

email = fake.email()
email

结果如下:

Python中第三方库Faker的使用详解

补充

当然,faker库不仅可以帮助我们生成上述信息,还有很多其它方法可用,这些方法分为以下几类:

  • address 地址
  • person 人物类:性别、姓名等
  • barcode 条码类
  • color 颜色类
  • company 公司类:公司名、email、公司名前缀等
  • credit_card 银行卡类:卡号、有效期、类型等
  • currency 货币
  • date_time 时间日期类:日期、年、月等
  • file 文件类:文件名、文件类型、文件扩展名等
  • internet 互联网类
  • job 工作
  • lorem 乱数假文
  • misc 杂项类
  • phone_number 手机号码类:手机号、运营商号段
  • python python数据
  • profile 人物描述信息:姓名、性别、地址、公司等
  • ssn 社会安全码(身份证号码)
  • user_agent 用户代理

关于这些方法的使用,我们直接参考faker的官网,用起来超方便。

1. address 地址

fake.country()  # 国家
fake.city()  # 城市
fake.city_suffix()  # 城市的后缀,中文是:市或县
fake.address()  # 地址
fake.street_address()  # 街道
fake.street_name()  # 街道名
fake.postcode()  # 邮编
fake.latitude()  # 维度
fake.longitude()  # 经度

2. person 人物

fake.name() # 姓名
fake.last_name() # 姓
fake.first_name() # 名
fake.name_male() # 男性姓名
fake.last_name_male() # 男性姓
fake.first_name_male() # 男性名
fake.name_female() # 女性姓名

3. color 颜色

fake.hex_color() # 16进制表示的颜色
fake.rgb_css_color() # css用的rgb色
fake.rgb_color()  # 表示rgb色的字符串
fake.color_name() # 颜色名字
fake.safe_hex_color()  #安全16进制色
fake.safe_color_name() # 安全颜色名字

4. company 公司

fake.company() # 公司名
fake.company_suffix() # 公司名后缀

5. credit_card 银行信用卡

fake.credit_card_number(card_type=None) # 卡号
fake.credit_card_provider(card_type=None) # 卡的提供者
fake.credit_card_security_code(card_type=None)# 卡的安全密码
fake.credit_card_expire() # 卡的有效期
fake.credit_card_full(card_type=None) # 完整卡信息

6. date_time 时间日期

fake.date_time(tzinfo=None) # 随机日期时间
fake.iso8601(tzinfo=None) # 以iso8601标准输出的日期
fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None) # 本月的某个日期
fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None) # 本年的某个日期
fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)  # 本年代内的一个日期
fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None)  # 本世纪一个日期
fake.date_time_between(start_date="-30y", end_date="now", tzinfo=None)  # 两个时间间的一个随机时间
fake.timezone() # 时区
fake.time(pattern="%H:%M:%S") # 时间(可自定义格式)
fake.am_pm() # 随机上午下午
fake.month() # 随机月份
fake.month_name() # 随机月份名字
fake.year() # 随机年
fake.day_of_week() # 随机星期几
fake.day_of_month() # 随机月中某一天
fake.time_delta() # 随机时间延迟
fake.date_object()  # 随机日期对象
fake.time_object() # 随机时间对象
fake.unix_time() # 随机unix时间(时间戳)
fake.date(pattern="%Y-%m-%d") # 随机日期(可自定义格式)
fake.date_time_ad(tzinfo=None)  # 公元后随机日期

7. file 文件

fake.file_name(category="image", extension="png") # 文件名(指定文件类型和后缀名)
fake.file_name() # 随机生成各类型文件
fake.file_extension(category=None) # 文件后缀
fake.mime_type(category=None) # mime-type

8. internet 互联网

fake.ipv4(network=False)  # ipv4地址
fake.ipv6(network=False)  # ipv6地址
fake.uri_path(deep=None) # uri路径
fake.uri_extension() # uri扩展名
fake.uri() # uri
fake.url() # url
fake.image_url(width=None, height=None)  # 图片url
fake.domain_word() # 域名主体
fake.domain_name() # 域名
fake.tld() # 域名后缀
fake.user_name() # 用户名
fake.user_agent() # UA
fake.mac_address() # MAC地址
fake.safe_email() # 安全邮箱
fake.free_email() # 免费邮箱
fake.company_email()  # 公司邮箱
fake.email() # 邮箱

9. job 工作

fake.job()#工作职位

10. lorem 乱数假文

fake.text(max_nb_chars=200) # 随机生成一篇文章
fake.word() # 随机单词
fake.words(nb=3)  # 随机生成几个字
fake.sentence(nb_words=6, variable_nb_words=True)  # 随机生成一个句子
fake.sentences(nb=3) # 随机生成几个句子
fake.paragraph(nb_sentences=3, variable_nb_sentences=True)  # 随机生成一段文字(字符串)
fake.paragraphs(nb=3)  # 随机生成成几段文字(列表)

11. phone_number 电话号码

fake.phone_number() # 手机号码
fake.phonenumber_prefix() # 运营商号段,手机号码前三位

12. ssn 社会安全码(身份证)

fake.ssn() # 随机生成身份证号(18位)

13. user_agent 用户代理

fake.user_agent()

以上就是Python中第三方库Faker的使用详解的详细内容,更多关于Python Faker库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python使用生成器实现可迭代对象
Mar 20 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
python 将对象设置为可迭代的两种实现方法
Jan 21 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
详解python播放音频的三种方法
Sep 23 Python
简单了解django文件下载方式
Feb 10 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
Nov 26 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
python读取pdf格式文档的实现代码
Apr 01 Python
Python数据处理的三个实用技巧分享
Python+Tkinter打造签名设计工具
Python正则表达式中flags参数的实例详解
Apr 01 #Python
Python+Tkinter制作专属图形化界面
Pyhton爬虫知识之正则表达式详解
python 离散点图画法的实现
Python学习之迭代器详解
You might like
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
python版简单工厂模式
2017/10/16 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python对于requests的封装方法详解
2019/01/03 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
2015元旦节寄语
2014/12/08 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang