数据挖掘: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人不把文字编码这块从头到尾.从古至今全研究通透的话是完全玩不转的.我终于深刻的理 ...
随机推荐
- Linux系统卡死后紧急处理
前言:Linux系统卡死了的情况有很多,最常见的是系统负载过高导致的.还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载.注意:不能再试图依赖任何图形界面的东西,如 Gnome的系统监视器 ...
- error LNK1104: 无法打开文件“opencv_world331.lib” LINK : fatal error LNK1104: 无法打开文件“opencv_world331.lib”,程序报这个错误时应该怎么解决?
这几天被这个错误搞得很头大,看了很多大神的解决办法,涉及到opencv的版本的windows的操作系统等各种知识,但是我尝试了很多办法最终都没有解决.今天晚上突然想到之前遇到这种无法打开lib文件时, ...
- 语音信号的梅尔频率倒谱系数(MFCC)的原理讲解及python实现
梅尔倒谱系数(MFCC) 梅尔倒谱系数(Mel-scale FrequencyCepstral Coefficients,简称MFCC).依据人的听觉实验结果来分析语音的频谱, MFCC分析依据的听觉 ...
- Vue路由(vue-router)详细讲解指南
中文文档:https://router.vuejs.org/zh/ Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.路由实际 ...
- iOS上架的整体流程和建议
App Store上架指的是iOS应用从提交申请到上线的整个过程,它的目的是让应用展示在App Store上获取流量.用户. 一.iOS上架的整体流程 1.申请开发者账号 苹果的开发者账号主要分为三种 ...
- .net core 发布单个exe 文件, 并优化缩小大小
最新版的.net core 3.0 可以通过命令行发布为exe文件, 操作步骤如下: 在项目目录下打开控制台: 输入命令: dotnet publish -r win-x64 -c Release - ...
- 搭建数据库galera集群
galera集群 galera简介 galera集群又叫多主集群,用于数据库的同步,保证数据安全 最少3台,最好是奇数台数,当一台机器宕掉时,因为仲裁机制,这台机器就会被踢出集群. 通过wsrep协议 ...
- APP自动化测试的环境配置
什么是Appium? 第三方自动化框架(工具),扩充了selenium webdriver 协议,在原有的基础上添加了移动端测试API selenium webdriver 指定了客户端到服务端的协议 ...
- 深入理解什么是Java泛型?泛型怎么使用?【纯转】
本篇文章给大家带来的内容是介绍深入理解什么是Java泛型?泛型怎么使用?有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助. 一.什么是泛型 “泛型” 意味着编写的代码可以被不同类型的对象所 ...
- ajax 请求前后处理
1. 介绍 通过 jQuery 提供的 ajaxSetup 方法,我们可以拦截页面上所有的 Ajax 请求响应(包括 $.ajax.$.post.$.get).这样我们可以对这些 Ajax 请求响应做 ...