登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

数据清洗:对58同城二手房数据进行清洗

介绍

在数据清洗中,面积中的 m2、价格中的 去掉,这样才能方便统计运算,并且在增加一列 房间数量

清洗前文件下载:
https://gitee.com/65242847/pic/blob/master/python/58%E5%90%8C%E5%9F%8E%E4%BA%8C%E6%89%8B%E6%88%BF%E6%95%B0%E6%8D%AE.csv

代码

import re

rpath=r"c:\Users\mym\Desktop\jz\58同城二手房数据.csv"
wpath=r"c:\Users\mym\Desktop\jz\58同城二手房数据-清洗.csv"

rf=open(rpath,"r",encoding="GBK")
wf=open(wpath,"w",encoding="GBK")
firstline=rf.readline().strip()+",fangjian\n"
wf.write(firstline)
for line in rf:
    line=line.strip()
    # print(line)
    # 将标题中的英文,替换成中文
    array=line.split(",")
    if len(array)>7:
        print(line)
        # 从索引是0的元素开始,到  倒数第6个元素结束,这个部分就是标题
        title_array=array[:-6]
        # 将list中的元素,组装成字符串,由,间隔各个字符串
        title=",".join(title_array)
        line=title+","+",".join(array[-6:])
        print(line)


    array=line.split(",")
    # 将面积中的m2去掉,并替换原来的元素
    array[2]=array[2][:-1]
    # 将价格中的万去掉,并替换原来的元素
    array[6]=array[6][:-1]

    # 用正则表达式提取出户型中的数字
    nums=re.findall(r"\d+",array[1])
    count=0
    for item in nums:
        count+=int(item)
    # print(nums,count)
    # 增加一列房间数量,字符串类型是为了后面拼接成字符串
    array.append(str(count))

    newline=",".join(array)+"\n"
    wf.write(newline)

rf.close()
wf.close()

清洗后文件截图:

下载:

https://gitee.com/65242847/pic/blob/master/csv/58%E5%90%8C%E5%9F%8E%E4%BA%8C%E6%89%8B%E6%88%BF%E6%95%B0%E6%8D%AE-%E6%B8%85%E6%B4%97.csv


原文出处:https://malaoshi.top/show_1EF6Vfgnh0RY.html