数据标准化 使用Python脚本处理excel单元格换行符
来源:互联网 发布:淘宝卖家确认订单信息 编辑:程序博客网 时间:2024/04/29 13:32
在下在做数据分析时,原始数据是excel格式的,导入hive表时将其转化为txt格式。
excel文件转txt格式的步骤如下:
1.打开另存为
2.选择txt格式保存
3.打开转成的txt将编码修改为UTF-8
在往hive表中导入数据时常常以换行符‘\n’来分割条数据。然而有时因为数据格式不够标准,即excel单元格中存在着换行符情况。例子如下:
在这个表格中,B3,B4单元格都存在这换行符。如果将其导入到hive中,查询得到的结果将是这样:
姓名 与宝宝的关系王宝强 宝宝本人马蓉 "曾经是宝宝的宝宝现在是宝宝的前妻"宋喆 "曾经是宝宝的经纪人现在是宝宝曾经的宝宝的宝宝"
与我们预先想得到的不一样
姓名 与宝宝的关系王宝强 宝宝本人马蓉 曾经是宝宝的宝宝 现在是宝宝的前妻宋喆 曾经是宝宝的经纪人 现在是宝宝曾经的宝宝的宝宝
因此尝试使用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() #重要,防止内存溢出
总结:该代码可以实现将excel表格标准化并转化为UTF-8的txt文件,方便导入数据库。
0 0
- 数据标准化 使用Python脚本处理excel单元格换行符
- 数据清洗-- 使用Python脚本处理excel单元格换行符
- java POI实现Excel单元格数据换行
- python网络爬虫-数据标准化处理
- excel单元格内换行
- Excel单元格换行(Windows)
- EXCEL单元格换行操作
- POI Excel 08 读取重写Excel,单元格中使用\n换行符
- Python处理Excel数据
- Python处理Excel数据
- Python处理excel数据
- Python 处理Excel数据
- python处理数据脚本
- 数据的标准化处理
- 数据标准化处理方法
- 数据标准化处理
- 数据的标准化处理
- 删除Excel单元格中的换行
- 编译maven项目出现Could not find artifact org.restlet.jee:org.restlet.parent:pom:2.2.1问题
- 树结构练习——排序二叉树的中序遍历
- win10打开cmd窗口
- MySQL字符串处理函数的几种常见用法
- android 清除缓存
- 数据标准化 使用Python脚本处理excel单元格换行符
- 51nod oj 1305 Pairwise Sum and Divide 【思维-组合-二分查找】
- oracle表空间的扩展
- Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType详解
- 跨平台的格式
- duilib动画按钮实现
- parse_str函数的理解
- 身份证号码格式验证
- linux tune2fs命令详解