摘要:但这里的“造数”并非意味着编造数据,而是指在确保数据安全的前提下,模拟生成一些用于测试的数据。在众多工具中,Faker库以其强大的功能和易用性脱颖而出,成为数据分析师们手中的得力助手。
在数据分析的世界里,数据是核心,而如何高效地生成和处理数据则成为每位数据分析师必备的技能之一。今天,我们要探讨一个有趣的话题——“造数”。
但这里的“造数”并非意味着编造数据,而是指在确保数据安全的前提下,模拟生成一些用于测试的数据。在众多工具中,Faker库以其强大的功能和易用性脱颖而出,成为数据分析师们手中的得力助手。
接下来,让我们一起走进Faker库的世界,看看它是如何帮助数据分析师们轻松“造数”的?
常规数据模拟,比如我们生成一组范围在100到1000的31个数字,就可以使用一行代码np.random.randint(100,1000,31),如下使用随机数字生成sale随日期变化的折线图。
import pandas as pdimport numpy as npimport datetimedf=pd.DataFrame(data=np.random.randint(100,1000,31),index=pd.date_range(datetime.datetime(2022,12,1),periods=31),columns=['sale']).plot(figsize=(9,6))使用Faker模拟数据需要提前下载Faker库,在命令行使用pip install Faker命令即可下载,当出现Successfully installed的字样时表明库已经安装完成。
!pip install Faker -i https://pypi.tuna.tsinghua.edu.cn/simple导入Faker库可以用来模拟生成数据,其中,locale="zh_CN"用来显示中文,如下生成包含姓名、手机号、身份证号、出生年月日、邮箱、地址、公司、职位这几个字段的数据。
#多行显示运行结果from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"from faker import Fakerfaker=Faker(locale="zh_CN")#模拟生成数据faker.namefaker.phone_numberfaker.ssnfaker.ssn[6:14]faker.emailfaker.addressfaker.companyfaker.job除了上面的字段,Faker库还可以生成如下几类常用的数据,地址类、人物类、公司类、信用卡类、时间日期类、文件类、互联网类、工作类、乱数假文类、电话号码类、身份证号类。
#address 地址faker.country # 国家faker.city # 城市faker.city_suffix # 城市的后缀,中文是:市或县faker.address # 地址faker.street_address # 街道faker.street_name # 街道名faker.postcode # 邮编faker.latitude # 维度faker.longitude # 经度使用Faker库模拟一组数据,并导出到Excel中,包含姓名、手机号、身份证号、出生日期、邮箱、详细地址等字段,先生成一个带有表头的空sheet表,使用Faker库生成对应字段,并用append命令逐一添加至sheet表中,最后进行保存导出。
from faker import Fakerfrom openpyxl import Workbookwb=Workbook#生成workbook 和工作表sheet=wb.activetitle_list=["姓名","手机号","身份证号","出生日期","邮箱","详细地址","公司名称","从事行业"]#设置excel的表头sheet.append(title_list)faker=Faker(locale="zh_CN")#模拟生成数据for i in range(100):sheet.append([faker.name,#生成姓名faker.phone_number,#生成手机号faker.ssn, #生成身份证号faker.ssn[6:14],#出生日期faker.email, #生成邮箱faker.address, #生成详细地址faker.company, #生成所在公司名称faker.job, #生成从事行业])wb.save(r'D:\系统桌面(勿删)\Desktop\模拟数据.xlsx')如果要生成一些可计算的随机数据,可以使用pandas、numpy这两个库,以上面的数据为例,添加可计算数据。
import pandas as pd import numpy as np # 读取Excel文件 df = pd.read_excel(r'D:\系统桌面(勿删)\Desktop\模拟数据.xlsx') df.head# 设置随机数种子以确保结果可重复 np.random.seed(0) # 随机生成新字段的数据 df['销售数量'] = np.random.randint(1, 100, size=len(df)) df['销售单价'] = np.random.uniform(5, 50, size=len(df)).round(2) df['销售收入'] = df['销售数量'] * df['销售单价'] df['销售成本'] = np.random.uniform(5, 50, size=len(df)).round(2) df['销售利润'] = df['销售收入'] - df['销售成本'] df['利润率'] = (df['销售利润'] / df['销售收入']).round(4) df.to_excel(r'D:\系统桌面(勿删)\Desktop\Faker模拟数据.xlsx')通过本节的分享,我们不难发现,Faker库在数据分析中扮演着举足轻重的角色。它不仅能够模拟生成各种类型的数据,还能帮助我们快速构建测试数据集,从而提高数据分析的效率和准确性。更重要的是,Faker库的使用也非常简单,只需几行代码,就能生成我们所需的数据。
希望今天的分享能够为大家带来启发和帮助,本节代码运行需要依托Python环境,如果你没有安装Python,想根据文中的代码实操一下,可点击链接实操https://www.heywhale.com/mw/project/674d9ad154549b48b1286c17,无需安装Python,可登录「在线运行」Python代码~
五年互联网数据分析经验,擅长Excel、SQL、Python、PowerBI数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路。
来源:大话数据分析