背景介绍

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

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

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

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

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

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

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

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

from faker import Faker
import pandas as pdfake = 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_infodf = 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库讲解

这么好用的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

结果如下:

2. 生成详细地址

address = fake.address()
address

结果如下:

3. 生成所在省份

province = address[:3]
province

结果如下:

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

fake.province()

结果如下:

4. 生成手机号

number = fake.phone_number()
number

结果如下:

5. 生成身份证号

id_card = fake.ssn()
id_card

结果如下:

6. 生成出生年月

birth_date = id_card[6:14]
birth_date

结果如下:

7. 生成邮箱

email = fake.email()
email

结果如下:

补充

当然,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的官网,用起来超方便。

faker.readthedocs.io/en/master/providers.html

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常用数据类型的基本操作(长文系列第①篇)

牛逼!Python的判断、循环和各种表达式(长文系列第②篇)

牛逼!Python函数和文件操作(长文系列第③篇)

牛逼!Python错误、异常和模块(长文系列第④篇)

一个「神奇」的Python库,99%的人都爱!相关推荐

  1. 基于「ClamAv」通过python进行病毒检测(2)-- pyClamd控制clamd详解

    介绍pyClamd模块一般用法和常用方法等. 我们可以使用python来控制clamd,从而操控ClamAv,需要引入第三方模块:pyClamd. 使用pyClamd控制clamd之前,必须先正确安装 ...

  2. python决策树可视化_「决策树」| Part3—Python实现之可视化

    文章首发于微信公众号:AlgorithmDeveloper,专注机器学习与Python,编程与算法,还有生活. 1.前言 「决策树」| Part2-Python实现之构建决策树中我们已经可以基于给定数 ...

  3. 99%的人都能看懂的分布式最佳「补偿」实践

    来源:跨界架构师 「补偿」机制的意义 以电商的购物场景为例: 客户端 ---->购物车微服务 ---->订单微服务 ----> 支付微服务. 这种调用链非常普遍. 那么为什么需要考虑 ...

  4. 99% 的人都能看懂的「补偿」以及最佳实践

    https://www.infoq.cn/article/0lMOVdP-kqWvbAa5QiEo 也许你对降级已经有了一些认识,这次,我们来聊一聊在保证对外高可用的同时,憋出的"内伤&qu ...

  5. python数学函数_「分享」关于Python整理的常用数学函数整理

    原标题:「分享」关于Python整理的常用数学函数整理 1.函数说明 abs(number)返回数字的绝对值,如abs(-10)返回10 pow(x,y[,z]) 返回x的y次幂(所得结果对z取模), ...

  6. 推荐一个牛逼的生物信息 Python 库 - Dash Bio

    翻译 | Lemonbit 来源 | Plotly 译文出品 | Python数据之道 推荐一个牛逼的生物信息 Python 库 - Dash Bio Dash Bio 是一个免费的开源 Python ...

  7. 99%的人都能看懂的分布式系统「补偿」机制

    摘要:我们来聊一聊在保证对外高可用的同时,憋出的"内伤"该如何通过「补偿」机制来自行消化. 一.「补偿」机制的意义? 以电商的购物场景为例: 客户端 ---->购物车微服务 ...

  8. 抖音能成为下一个「微信」吗?

    本文转载自IT之家 从推出抖音搜索.上线抖音支付,到试水本地生活,主打兴趣电商,2021 年才刚过去四个月,抖音却在每个月都有大动作. 抖音是字节跳动旗下用户最多.营收占比最大的产品.张一鸣曾用「动态 ...

  9. 我访问了一个「假」的 GitHub,难道是 PronHub ,还是 GayHub ?

    [回复"1024",送你一个特别推送] 我访问了一个「假」的 GitHub,难道是 PornHub ,还是 GayHub ?都不是,而是下面我要讲的,请仔细阅读. 最近我在浏览掘金 ...

最新文章

  1. go-kit微服务学习-官方示例stringsvc学习
  2. 一天一个命令--ifconfig
  3. RabbitMQ的安装及集群搭建方法
  4. 转载:KOF97八神攻防战
  5. 震惊!快速幂怎么编?省一说暴力,银牌说递归,国集听完笑了
  6. [渝粤教育] 中国地质大学 金融保险业会计 复习题 (2)
  7. 重大技术突破首次发布!十问解密云栖大会!
  8. 垂直布局的HTML表单
  9. Oracle ORA-06861: 文字与格式字符串不匹配 记录两次无助的遭遇:存储过程直接执行正常,java调用存储过程则报错
  10. 玉米社:抖音玩法和运营机制,学会这些技巧,轻松上热门
  11. 人工智能能写剧本了 还被拍成了9分钟的短片
  12. Zxing系列之图片添加二维码水印教程
  13. 判断一颗二叉树是否对称
  14. 【CCF推荐专区】计算机类优质SCIEI好刊,期刊质量高,部分期刊仅有少量版面
  15. 我们怎么做那个“卖铲子的人”
  16. 14.什么是响应式设计?响应式设计的基本原理是什么?如何做?
  17. Linux设置开机自启
  18. 算法基础之二叉树理论
  19. AD9361官方FPGA工程编译
  20. selenium之css元素定位方法

热门文章

  1. 面试题及答案_NET
  2. macos mysql 阿帕奇_Mac配置apache,mysql
  3. 【SpringBoot MQ 系列】RabbitListener 消费基本使用姿势介绍
  4. java定时任务框架elasticjob详解
  5. pandas速查手册(中文版)
  6. 京东三级列表页持续架构优化—前端优化实践
  7. xhprof在windows下面的安装和使用[上](windows版本)
  8. PHP实现内部函数explode
  9. PHP的void mixed
  10. mysql主主keepalived_MySQL主主+Keepalived实现高可用