数据清洗,使用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里面带中文字符的更多相关文章

  1. PHP - 传入WebService服务端带中文字符的序列化字串不能反序列化的解决方法

    因工作需要,用了web服务,通过远程调用的方式来检索雅虎拍卖数据.前几天遇到一个问题,现在记录一下 客户端: $res = $this->client->call('Get_YahooDa ...

  2. python利用utf-8编码判断中文字符

    下面这个小工具包含了 判断unicode是否是汉字,数字,英文,或者其他字符. 全角符号转半角符号. unicode字符串归一化等工作. 还有一个能处理多音字的汉字转拼音的程序,还在整理中. #!/u ...

  3. WP8_UTF8 to GB2312转码 (url网址中带中文字符的处理)

    直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码, 而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 ...

  4. 判断一个python字符串中是否包含中文字符

    #在python中一个汉字算一个字符,一个英文字母算一个字符 #用 ord() 函数判断单个字符的unicode编码是否大于255即可. def is_contain_chinese(check_st ...

  5. python 处理html文本的中文字符gbk转utf-8

    #中文字符gbk转utf-8 def gbk2utf8(self,raw): rs=raw.encode('raw_unicode_escape') #转为机器识别字符串 s=repr(rs) ss= ...

  6. 带中文的路径导致NSURL初始化一直为null的问题

    一.问题描述 在学习Ojective-C过程中,需要读取文件中的内容,但发现指针变量url的值一直为nil. 代码如下: NSString *strUrl=@"file:///Users/f ...

  7. JAVA的中文字符乱码问题

    来源:http://luzefengoo.blog.163.com/blog/static/1403593882012754428536/ JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用 ...

  8. python中文字符乱码(GB2312,GBK,GB18030相关的问题)

    转自博主 crifan http://againinput4.blog.163.com/blog/static/1727994912011111011432810/ 在玩wordpress的一个博客搬 ...

  9. Python中文字符的理解:str()、repr()、print

    Python中文字符的理解:str().repr().print 字数1384 阅读4 评论0 喜欢0 都说Python人不把文字编码这块从头到尾.从古至今全研究通透的话是完全玩不转的.我终于深刻的理 ...

随机推荐

  1. Docker下kafka学习三部曲之一:极速体验kafka

    Kafka是一种高吞吐量的分布式发布订阅消息系统,从本章开始我们先极速体验,再实战docker下搭建kafka环境,最后开发一个java web应用来体验kafka服务. 我们一起用最快的速度体验ka ...

  2. Python文件访问编码格式问题UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案

    1.Python读取文件 # .打开文件 file = open("ReadMe") # .读取文件类容 text = file.read() print(text) # .关闭文 ...

  3. 通过js获取tinymce4.x的值

    问题的引出: 在使用过程中,用传统的js的方法判断tinymce所选textarea(下面直接称textarea)的值是会出现这样的问题的: 在已有输入内容时,首次提交的时候,依然会弹出js写的警告提 ...

  4. 为什么StringBuilder是线程不安全的?StringBuffer是线程安全的?

    面试中经常问到的一个问题:StringBuilder和StringBuffer的区别是什么? 我们非常自信的说出:StringBuilder是线程安全的,StirngBuffer是线程不安全的 面试官 ...

  5. 31 (OC)* 内存管理

    31 (OC)  内存管理 一:内存管理黄金法则. 如果对一个对象使用了alloc.[Mutable]copy,retain,那么你必须使用相应的realease或者autorelease 二:内存管 ...

  6. librosa语音信号处理

    librosa是一个非常强大的python语音信号处理的第三方库,本文参考的是librosa的官方文档,本文主要总结了一些重要,对我来说非常常用的功能.学会librosa后再也不用用python去实现 ...

  7. AppScan工具介绍与安装

    本文仅供个人参考学习,如做商业用途,请购买正版,谢谢! 介绍 AppScan是IBM公司出的一款Web应用安全测试工具,采用黑盒测试的方式,可以扫描常见的web应用安全漏洞.其工作原理,首先是根据起始 ...

  8. JQuery发送ajax请求时中文乱码

    先排除项目故障: 1.web.xml中是否配置了字符拦截器 <filter> <filter-name>encodingFilter</filter-name> & ...

  9. MyBatis 插件使用-简单的分页插件

    目录 1 分页参数的传递 2 实现 Interceptor 接口 2.1 Interceptor 接口说明 2.1 注解说明 2.3 实现分页接口 PageInterceptor 3. 更改配置 4 ...

  10. Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(2)

    书接上文 首先根据各种Spring MVC教程,建立了基础的结构,是否合理不知道,姑且先这样,有问题再解决问题.学习新东西,不能怕掉坑里... 查询网上别人的经历说需要把根目录下的lib目录下的所有包 ...