如何通过python(itertools库)+pandas制造房源测试数据

如何通过python(itertools库)+pandas制造房源测试数据

场景一:我们在做房源开盘业务的时候,通常需要制造房源测试数据,供用户在线上进行选房,如果我们需要大批量的房源数据该如何制造数据呢?房源数据展示结果如下:
在这里插入图片描述
我们需要制造每栋楼里每个单元有多少层楼以及每层楼有多少个房间数,我们可以通过python+pandas制造房源数据:

方法1:常规写法

常规写法 嵌套了4个for循环,以此遍历每栋楼、每个单元、每层楼以及每层的房间数

import random
import pandas as pd
from faker import Faker

f = Faker(locale="zh_CN")

lists = []
for i in range(1, 5):	 #楼栋数
    for j in range(1,4):	#单元数
        for m in range(1,3):	#楼层数
            for n in range(1,2):	#房号数
                floor_area=round(random.uniform(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),
                     "房源单价(*)": f.random_int(min=5000, max=15000),
                     "户型(*)": "三房两厅", "房源描述": "最为高端“天字系”代表作"}
                lists.append(a)
df = pd.DataFrame(lists)
df.to_excel(r"D:\HuaweiMoveData\Users\28071\Desktop\云和+\测试数据_1.xlsx",index=None)```







常规写法比较繁琐且逻辑不是很清晰,我们可以使用itertools. product() 大大减少循环层级,如下代码:

方法2:


```python
import random
import pandas as pd
from itertools import product
from faker import Faker

f = Faker(locale="zh_CN")

lists_1 = range(1, 5)
lists_2 = range(1, 4)
lists_3 = range(1, 3)
lists_4 = range(1, 2)

s = []
for i, j, m, n in product(lists_1, lists_2, lists_3, lists_4):
    floor_area = round(random.uniform(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),
         "房源单价(*)": f.random_int(min=5000, max=15000),
         "户型(*)": "三房两厅", "房源描述": "最为高端“天字系”代表作"}
    s.append(a)

df = pd.DataFrame(s)
df.to_excel(r"D:\HuaweiMoveData\Users\28071\Desktop\云和+\测试数据.xlsx", index=None)```


将房源数据写入到Excel表效果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a068141c56c5428d81c7216a4e814e14.png)

最后可以通过接口或后台直接将房源数据导入即可,效果如图一展示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值