数据清洗-- 使用Python脚本处理excel单元格换行符

来源:互联网 发布:湖畔网络 编辑:程序博客网 时间:2024/03/29 20:40

原文地址http://blog.csdn.net/collaboom/article/details/52227950

在下在做数据分析时,原始数据是excel格式的,导入Hive表时将其转化为txt格式。 
excel文件转txt格式的步骤如下: 
1.打开另存为 
2.选择txt格式保存 
3.打开转成的txt将编码修改为UTF-8

这里写图片描述

这里写图片描述

这里写图片描述

在往hive表中导入数据时常常以换行符‘\n’来分割条数据。然而有时因为数据格式不够标准,即excel单元格中存在着换行符情况。例子如下:

这里写图片描述

在这个表格中,B3,B4单元格都存在这换行符。如果将其导入到hive中,查询得到的结果将是这样:

姓名  与宝宝的关系王宝强 宝宝本人马蓉  "曾经是宝宝的宝宝现在是宝宝的前妻"宋喆  "曾经是宝宝的经纪人现在是宝宝曾经的宝宝的宝宝"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

与我们预先想得到的不一样

姓名  与宝宝的关系王宝强 宝宝本人马蓉  曾经是宝宝的宝宝 现在是宝宝的前妻宋喆  曾经是宝宝的经纪人 现在是宝宝曾经的宝宝的宝宝
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

因此尝试使用Python编写脚本来处理问题。开始尝试使用正则表达式进行处理。后面找到了更简便的办法,使用xlrd包对excel文件进行处理。使用pip install xlrd可以安装该包。 
下面的代码读取每一个单元格并将其中内容转化为字符串格式(默认为float格式,因此原本的整数可以转化为int去除小数点在转化为字符串),去除字符串中的换行符,将数据直接存储到txt文件中,编码格式为utf-8。

废话不说上代码:

# coding: utf-8# author: turbob00st version:1.0 ''' usage:python version 3  python脚本与excel文件放在同一路径,cmd输入:py -3 excel2txt.py清除excel表格中的单元格换行符,并转化为txt格式文件,可以直接导入hive表'''import xlrd     #导入处理excel文件的包,可以使用pip安装file = input("输入需要处理的文件名(包含.xls,.xlsx):")filename = file.split('xls')[0] + 'txt' #定义输出文件名xls2txt = open(filename,'w',encoding ='utf-8') #创建写入的文件data = xlrd.open_workbook(file) #打开excel表格table = data.sheets()[0]    #读取第一个sheetrows = table.nrows  #excel文件的行数cols = table.ncols  #ecel文件的列数for rownum in range(0,rows):    #读取行    for colnum in range(0,cols):    #读取列        celldata = table.cell(rownum,colnum).value  #读取单元格数据,数据格式为float,下面判断将整数数据转化为int        if type(celldata) == float:            if int(celldata) == celldata:                celldata = int(celldata)        celldata = str(celldata)    #将数据转化为字符串,再对其中的换行符进行处理        celldata = celldata.replace('\n',' ')   #使用python中字符串函数替换换行符为空格        xls2txt.write(celldata +'\t') #单行中的数据用tab分隔符分离    xls2txt.write('\n') #每行之间使用换行符print('清洗完毕')xls2txt.close() #重要,防止内存溢出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

总结:该代码可以实现将excel表格标准化并转化为UTF-8的txt文件,方便导入数据库。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 百度网盘登录要验证码怎么办 百度网盘备份记录怎么办能删掉 手机酷狗听歌耳机声音太小了怎么办 苹果6s微信通话声音变粗怎么办 千千静听多个列表合成一个了怎么办 别人用手机号注册了邮箱怎么办 微信身份信息验证未通过怎么办 快递地址填错了已经发到了怎么办 孩子威胁同学给她买东西吃怎么办 在超市买小孩米粉过期了怎么办 出口货物被海关扣了说仿牌怎么办 有一批仿牌被宁波海关查了怎么办 付了定金不想要车了怎么办 泥墙刮石灰上涂料现在刮腻子怎么办 月经最后一天同房了怎么办吃什么药 奶水太多了宝宝总是呛到了怎么办 婴儿刚吃完奶大量喷奶怎么办 我干活细致领导说我慢怎么办 怀孕初期吃了加明矾的粉皮怎么办 绿豆面黄豆面白面蒸馒头怎么办 画油画时把颜料染在衣服上怎么办 买的布衣柜少了一个管子怎么办 小2球刚好进2球怎么办 大2球刚好进2球怎么办 大球2进了2球怎么办 身上剩的几百块钱有掉了怎么办 刚买一天的手机电板有问题怎么办 宝宝长湿疹穿少了就感冒怎么办 照片跟视频被孩子删了怎么办 老公总是说一些不开心的话题怎么办 孩子沉迷手机篮球课不爱去怎么办 坐久了屁鼓会长疮怎么办 套胶的胶皮与海绵分离怎么办 换肾15天了沒尿怎么办? 妻子的绒癌怎么办?——急人! 孕妇结石掉在输尿管有血尿怎么办 吃葯时药片沾在食管臂上怎么办 八十多了膀胱癌手术复发了怎么办 尿蛋白和尿隐血2个加怎么办 小肝癌手术后两个月又复发了怎么办 膀胱癌血尿堵塞尿道和尿管怎么办