借助faker+pandas生成测试数据保存到excel文件

发布于:2022-12-17 ⋅ 阅读:(401) ⋅ 点赞:(0)

业务场景:
我们通常会制造测试数据保存到excel表格里,然后将excel表格里的数据进行导入后后台系统,预期结果如下:
在这里插入图片描述

第一种方式:
import random
import pandas as pd
from faker import Faker
f = Faker(locale='zh_CN') #生成一个faker对象,专门用于制造测试数据
lists = []
for i in range(1, 10): #循环每一栋楼
    for j in range(1,4): #每一栋楼下循环每个单元
        for m in range(1,4):#每一个单元循环每个楼层数
            for n in range(1,5):#每一层楼有多少个房间号
                floor_area=round(random.uniform(100, 250),2) #建筑面积100-250,保留2位小数
                a = {"楼栋(*)": str(i), "单元(*)": str(j), "楼层(*)": str(m), "房号(*)": str(m) + "0" + str(+n),
                     "房源总价(*)": f.random_int(min=1000000, max=9999999),
                     "建筑面积(*)": floor_area,
                     "套内面积(*)": round(floor_area-30),#套内面积=建筑面积-30进行四舍五入
                     "房源单价(*)": f.random_int(min=5000, max=15000),
                     "户型(*)": "三房两厅", "房源描述": "南北通透,央企好房"}
                lists.append(a) #生成的每一行数据存放到列表里
df = pd.DataFrame(lists)#通过pandas将数据写入到excel表
df.to_excel(r"C:\Users\28071\Desktop\在线开盘\新增房源.xlsx",index=None)

第二种方式:采取列表生成式

import random
import pandas as pd
from faker import Faker

f = Faker(locale='zh_CN')
a = [{"楼栋(*)": str(i), "单元(*)": str(j), "楼层(*)": str(m), "房号(*)": str(m)+"00"+str(+n),
      "房源总价(*)": f.random_int(min=1000000, max=9999999),
      "建筑面积(*)": f.pyfloat(left_digits=3, right_digits=2, positive=True),
      "套内面积(*)": f.pyfloat(left_digits=3, right_digits=2, positive=True)-50,
      "房源单价(*)": f.random_int(min=10000, max=99999),
      "户型(*)": "三房两厅", "房源描述": "南北通透"}
     for i in range(1, 6) for j in range(1, 6) for m in range(1,6) for n in range(1,6)]
df = pd.DataFrame(a)
df.to_excel(r"C:\Users\28071\Desktop\在线开盘\1.xlsx",index=False)
本文含有隐藏内容,请 开通VIP 后查看