开房数据的数据清洗

2023-10-21 00:59
文章标签 数据 清洗 开房

本文主要是介绍开房数据的数据清洗,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

find使用

举例子:

pos="hellos world".find("gogogo")#找不到=-1
pos="hellos world".find("llo")# 2
初始h的位置为-1,e为0,l为1以此类推find找到符合的位置后的第一个字符开始算

接下来对开房的数据进行数据进行切割,在windows里有两个快捷键一个table可以查看所有数据,一个more可以看当前数据的百分比
在这里插入图片描述
针对下面这个图里面的曹阳这个信息进行切割
在这里插入图片描述

mystr="曹阳,32010619720506042x,F,19720506,-,210005,13770848687,025-842019149,-,cy_qing@163.com,0"
mylist=mystr.split(",") #切割,返回列表
print(mylist) #打印列表
for  data in mylist: #循环列表print(data)

在这里插入图片描述

数据清洗

readfilepath=r"C:\Users\Tsinghua-yincheng\Desktop\yinchengDay1\kaifangX.txt"
writefilegoodpath=r"C:\Users\Tsinghua-yincheng\Desktop\yinchengDay1down\kaifanggood.txt"
writefilebadpath=r"C:\Users\Tsinghua-yincheng\Desktop\yinchengDay1down\kaifangbad.txt"readfile=open(readfilepath,"r",errors="ignore")
goodwritefile=open(writefilegoodpath,"w",errors="ignore") #打开文件
badwritefile=open(writefilebadpath,"w",errors="ignore") #打开文件while True:line=readfile.readline()mylist=line.split(",")#数据切割。if  len(mylist)>2:#判断长度if  len(mylist[1])==18:#判断身份证号码合法goodwritefile.write(line)else:badwritefile.write(line)else:badwritefile.write(line)if  not line:break
readfile.close()#关闭文件
goodwritefile.close() #关闭
badwritefile.close() #关闭

在这里插入图片描述
但是身份证的信息是有区域的划分的,因此

area=[[1,"华北"],[2,"东北"],[3,"华东"],[4,"中南"],[5,"西南"],[6,"西北"]]
filelist=[]#列表存储文件对象
for  areatext  in area:savepath="C:\\Users\\Tsinghua-yincheng\\Desktop\\yinchengDay1down\\区域\\"writefilepath=savepath+areatext[1]+".txt" #生成路径,6个路径writefile=open(writefilepath,"w")#创建一个文件对象filelist.append(writefile) #加入文件对象列表readfilepath=r"C:\Users\Tsinghua-yincheng\Desktop\yinchengDay1down\kaifanggood.txt"
readfile=open(readfilepath,"r",errors="ignore")
alllist=readfile.readlines()#全部读取到内存
for  line in alllist:#遍历每一行linelist=line.split(",")#切割#linelist[1]身份证#linelist[1][0]#取出的身份证第一位for i   in  range(len(area)): #遍历区域,1 华北,2,东北if str(area[i][0])==linelist[1][0]:filelist[i].write(line) #写入break
readfile.close()#关闭文件
for  file in filelist: #批量关闭文件file.close()

但是对于内存消耗太大,改成硬盘存储,就一行的差别

area=[[1,"华北"],[2,"东北"],[3,"华东"],[4,"中南"],[5,"西南"],[6,"西北"]]
filelist=[]#列表存储文件对象
for  areatext  in area:savepath="C:\\Users\\Tsinghua-yincheng\\Desktop\\yinchengDay1down\\区域disk\\"writefilepath=savepath+areatext[1]+".txt" #生成路径,6个路径writefile=open(writefilepath,"w")#创建一个文件对象filelist.append(writefile) #加入文件对象列表readfilepath=r"C:\Users\Tsinghua-yincheng\Desktop\yinchengDay1down\kaifanggood.txt"
readfile=open(readfilepath,"r",errors="ignore")
while  True:line=readfile.readline()if  not line: #处理最后一行breaklinelist = line.split(",")  # 切割# linelist[1]身份证# linelist[1][0]#取出的身份证第一位for i in range(len(area)):  # 遍历区域,1 华北,2,东北if str(area[i][0]) == linelist[1][0]:filelist[i].write(line)  # 写入breakreadfile.close()#关闭文件
for  file in filelist: #批量关闭文件file.close()

因此还可以加上省份的划分

area=[[11,"北京"],[12,"天津"],[13,"河北"],[14,"山西"],[15,"内蒙古"],[21,"辽宁"],[22,"吉林"],[23,"黑龙江"],[31,"上海"],[32,"江苏"],[33,"浙江"],[34, "安徽"],[35,"福建"],[36,"江西"],[37,"山东"],[41,"河南"],[42,"湖北"],[43, "湖南"],[44,"广东"],[45,"广西"],[46,"海南"],[50,"重庆"],[51, "四川"],[52,"贵州"],[53,"云南"],[54,"西藏"],[61,"陕西"],[62, "甘肃"],[63,"青海"],[64,"宁夏"],[65,"新疆"],[71,"台湾"],[81, "香港"],[82,"澳门"]]filelist=[]#列表存储文件对象
for  areatext  in area:savepath="C:\\Users\\Tsinghua-yincheng\\Desktop\\yinchengDay1down\\省份\\"writefilepath=savepath+areatext[1]+".txt" #生成路径,6个路径writefile=open(writefilepath,"w")#创建一个文件对象filelist.append(writefile) #加入文件对象列表readfilepath=r"C:\Users\Tsinghua-yincheng\Desktop\yinchengDay1down\kaifanggood.txt"
readfile=open(readfilepath,"r",errors="ignore")
alllist=readfile.readlines()#全部读取到内存
for  line in alllist:#遍历每一行linelist=line.split(",")#切割#linelist[1]身份证#linelist[1][0]#取出的身份证第一位for i   in  range(len(area)): #遍历区域,1 华北,2,东北if str(area[i][0])==linelist[1][0:2]:filelist[i].write(line) #写入breakreadfile.close()#关闭文件
for  file in filelist: #批量关闭文件file.close()

因此按照年龄、月份、某天都是可行的。

这篇关于开房数据的数据清洗的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/250853

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元