数据挖掘:python数据清洗cvs里面带中文字符
数据清洗,使用python数据清洗cvs里面带中文字符,意图是用字典对应中文字符,即key值是中文字符,value值是index,自增即可;利用字典数据结构没有重复key值的特性,把中文字符映射到了数值index。
python代码如下:(data数据时csv格式)
import csv
dict2 = {} #C
dict4 = {} #E
dict25 = {} #z
dict26 = {} #AA
dict27 = {} #AB
dict37 = {} #AL
dict38 = {} #AM
dict40 = {} #AO
dict41 = {} #AP
dict42 = {} #AQ
dict45 = {} #AT
dict49 = {} #AX
index = 0
flag = False
# print(row[2],dict[row[2]])
with open("E:/test/real/test.csv", 'w+', newline='') as csv_file_write:
writer = csv.writer(csv_file_write)
with open('E:/test/real/b.csv', 'r', newline='') as csv_file_read:
reader = csv.reader(csv_file_read)
for row in reader:
if(flag):
if row[2] not in dict2.keys():
dict2[row[2]] = index
if row[4] not in dict4.keys():
dict4[row[4]] = index
if row[25] not in dict25.keys():
dict25[row[25]] = index
if row[26] not in dict26.keys():
dict26[row[26]] = index
if row[27] not in dict27.keys():
dict27[row[27]] = index
if row[37] not in dict37.keys():
dict37[row[37]] = index
if row[38] not in dict38.keys():
dict38[row[38]] = index
if row[40] not in dict40.keys():
dict40[row[40]] = index
if row[41] not in dict41.keys():
dict41[row[41]] = index
if row[42] not in dict42.keys():
dict42[row[42]] = index
if row[45] not in dict45.keys():
dict45[row[45]] = index
if row[49] not in dict49.keys():
dict49[row[49]] = index
row[2] = dict2[row[2]]
row[4] = dict4[row[4]]
row[25] = dict25[row[25]]
row[26] = dict26[row[26]]
row[27] = dict27[row[27]]
row[37] = dict37[row[37]]
row[38] = dict38[row[38]]
row[40] = dict40[row[40]]
row[41] = dict41[row[41]]
row[42] = dict42[row[42]]
row[45] = dict45[row[45]]
row[49] = dict49[row[49]]
index = index + 1
writer.writerow(row)
flag = True
csv_file_read.close()
csv_file_write.close()
print('done!')
上例是真实的数据处理,有两百列属性,三万条数据的原始数据。其中包括中文字符,及缺失值,需要一步步清洗。
备注:发生异常permission denied异常;
解决方案: 是因为正在打开着csv文件,所以python没有权限以w的方式打开文件。关闭该文件即可;
数据挖掘:python数据清洗cvs里面带中文字符的更多相关文章
- PHP - 传入WebService服务端带中文字符的序列化字串不能反序列化的解决方法
因工作需要,用了web服务,通过远程调用的方式来检索雅虎拍卖数据.前几天遇到一个问题,现在记录一下 客户端: $res = $this->client->call('Get_YahooDa ...
- python利用utf-8编码判断中文字符
下面这个小工具包含了 判断unicode是否是汉字,数字,英文,或者其他字符. 全角符号转半角符号. unicode字符串归一化等工作. 还有一个能处理多音字的汉字转拼音的程序,还在整理中. #!/u ...
- WP8_UTF8 to GB2312转码 (url网址中带中文字符的处理)
直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码, 而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 ...
- 判断一个python字符串中是否包含中文字符
#在python中一个汉字算一个字符,一个英文字母算一个字符 #用 ord() 函数判断单个字符的unicode编码是否大于255即可. def is_contain_chinese(check_st ...
- python 处理html文本的中文字符gbk转utf-8
#中文字符gbk转utf-8 def gbk2utf8(self,raw): rs=raw.encode('raw_unicode_escape') #转为机器识别字符串 s=repr(rs) ss= ...
- 带中文的路径导致NSURL初始化一直为null的问题
一.问题描述 在学习Ojective-C过程中,需要读取文件中的内容,但发现指针变量url的值一直为nil. 代码如下: NSString *strUrl=@"file:///Users/f ...
- JAVA的中文字符乱码问题
来源:http://luzefengoo.blog.163.com/blog/static/1403593882012754428536/ JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用 ...
- python中文字符乱码(GB2312,GBK,GB18030相关的问题)
转自博主 crifan http://againinput4.blog.163.com/blog/static/1727994912011111011432810/ 在玩wordpress的一个博客搬 ...
- Python中文字符的理解:str()、repr()、print
Python中文字符的理解:str().repr().print 字数1384 阅读4 评论0 喜欢0 都说Python人不把文字编码这块从头到尾.从古至今全研究通透的话是完全玩不转的.我终于深刻的理 ...
随机推荐
- 【第十六篇】这一次要写的是bootstrap-table
先上图吧这就是效果图 上代码(这一部分是工具栏的,还包括slider滑动条) <div class="box-body"> <div class="ro ...
- Webdriver元素定位的方法
webdriver提供了8种元素定位方法: 1.id 2.name 3.tag name 4.class name 5.link text 6.partial link text 7.xpath 8. ...
- jenkins在windows上自动化部署.Net(.Net Core)项目
前言 什么是持续集成呢?Continuous integration(CI).持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成. ...
- Xshell无法连接到虚拟机Linux系统(桥接方式)
一. 查看主机上网网卡网络配置信息 1. 查看本机所用网卡名称(适用于win10系统) 操作步骤: 1) 状态栏右键“WiFi连接图标” 2) 点击“打开“网络和Internet”设置” 3) ...
- 02 jvm简介
声明:本博客仅仅是一个初学者的学习记录.心得总结,其中肯定有许多错误,不具有参考价值,欢迎大佬指正,谢谢!想和我交流.一起学习.一起进步的朋友可以加我微信Liu__66666666 这是简单学习一遍之 ...
- Spring Boot 多站点利用 Redis 实现 Session 共享
如何在不同站点(web服务进程)之间共享会话 Session 呢,原理很简单,就是把这个 Session 独立存储在一个地方,所有的站点都从这个地方读取 Session. 通常我们使用 Redis 来 ...
- MOOC 数据库系统笔记(一):初步认识数据库系统
概述 什么是数据库 数据库是电子化信息的集合 数据库起源于规范化"表(Table)"的处理. Table:以按行按列形式组织及展现的数据. E.F.Codd,基于对"表( ...
- 48 (OC)* 适配iPad和iPhone、以及横竖屏适配。
一:核心方法 1.三个方法 1.1:开始就会触发 - (void)viewWillLayoutSubviews; 1.2:开始就会触发 - (void)viewDidLayoutSubviews; 1 ...
- spring集成mybatis-plus
一.mybatis-plus 使用mybatis-plus可以轻松实现通用crue.通用service,不用再在xml.dao.service里写增删改查的代码(需要写特殊方法的时候可以按原先的来), ...
- filebeat相关registry文件内容解析
filebeat的registry文件中存放的是被采集的所有日志的相关信息. linux中registry中一条日志记录的内容如下 {"source":"/var/log ...