关于数据治理

1、代码如下

import pandas as pd
import numpy as np
import re

f=open('bjlianjiawang.csv','r',encoding='utf-8')
data=pd.read_csv(f,encoding='uft-8',sep='|',header=None,names=('fangzi','jiage','danjia','fangzishu','chaoxiang','mianji','jianzaoshijian','xiaoqu','weizhi','fangjianzongshu','fangling'))
f.close()

# 输出房间总数 和 fangling的默认值
data['fangjianzongshu']=np.nan
data['fangling']=np.nan

# 数据治理 1:计算总的房间数 = 室数 + 厅数
def zhili01(line):
    re_obj = re.compile(r'\d+')     # 创建正则表达式对象
    res_list = re_obj.findall(line)     # 利用findall将找到的符合要求的放到列表中
    num_list = list(map(int,res_list))      # map方法,是列表中的元素按照指定那个方式转变
    if (len(num_list)>0):
        return sum(num_list)
    else:
        return np.nan

data['fangjianzongshu'] = data['fangzishu'].apply(zhili01)

# 治理2:计算房龄 2021 - 建造年份
def zhili02(line):
    re_obj=re.compile(r'\d+')
    res_list=re_obj.findall(line)
    num_list=list(map(int,res_list))
    if (len(num_list)>0):
        return 2021-num_list[0]
    else:
        return np.nan

data['fangling'] = data['jianzaoshijian'].apply(zhili02)

# 数据治理3 :把房屋的面积的非数字部分去掉  117.21平米
def zhili03(line):
    re_obj=re.compile(r'\d+')
    res_list=re_obj.findall(line)
    num_list=list(map(int,res_list))
    if (len(num_list)>0):
        return num_list[0]
    else:
        return np.nan
data['mianji']=data['mianji'].apply(zhili03)

# 数据治理4: 删除房间总数是空,或者 房龄为空的行,或者面积为空的字段
data.dropna(axis=0,how='any',inplace=True)

# 数据治理完毕,存入另外的文件
data.to_csv('lianjia_zhili.csv',index=False)

2、运行结果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值