开房数据的数据清洗

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

相关文章

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1