Excel ETL处理五要素 常见问题

Excel ETL处理五要素 常见问题,第1张

经常 我们在处理小数据集是 不想用大刀,逮住了excel 就想 一直拖拖拉拉就把数据先处理一下,实在处理费力,再从 python numpy pandas 处理一通。

常见的 在处理五要素的时候,姓名基本没啥要处理的,

1身份z号 手机号 yhk号 经常是 显示为 E+17 或者 前面带有 ``` 字符

2申请日期经常是各种格式,有时候一不小心就变成乱码的数字 后者####。

3如果 excel 有外部链接存在,即使忽略,但是 在修改的时候还是非常糟心,要等很久,而且经常无法保存,excel就崩溃了

4还有就是 本身就是文本,但是使用 TEXT LEFT RIGHT MID IF 没有任何效果

5excel 读取 含有中文的数据显示乱码

6多条件的替换问题,if嵌套。

7批量 替换 匹配

8空值问题

9筛选问题

10脚本读取文件

其实就是以上的这些小情况,经常浪费大量时间,急需一招狠制敌

接着说 1

因为很多时候 excel会把一些类数值的身份z号和手机号当做数字,这个其实是数据源在使用python处理的时候没有来得及保存 对应列的 数据类型。

在出现 E+17,我们首先想到的是修改 单元格格式,比如保存为文本,假如正常那简直是万幸,如果不可以,可能会发现 修改后的数据末尾都变成了3个零。

另外一个终极方法

这里,有一个简单的 *** 作方法:选择数据源——右键设置单元格格式——自定义——选择0,按确定——结果出来了。结果很明显,是我们需要的效果,而且快捷,方便。

另外就是使用python pandas读取 ,设置 dtype=npstr

对于 身份z或者手机号 yhk号 数据首位出现 `字符的,可以使用 RIGHT MID 函数做数据的截取

对于数据出现 ###,一般修改单元格格式 ,或者 拉长单元格,或者 python读取一下就可以处理

最后就是说2了。日期

其实这个日期,就是格式太特么的多和复杂不固定。我们现在 使用的是 类似 2018-4-17 这种格式,所以只要不符合这种格式的,我们都会需要做一些转化,

最简单的 就是使用 TEXT 函数 ,一般这样用 =TEXT(E2,"yyyy-mm-dd")

基本就可以转化过来。

如果以上不起作用 参考 处理 4 的方法 不断尝试 ,最后确认函数真的不会起作用为止。

之后如果 不小心 变成一段数字了,修改单元格格式,转回日期一般是有效的。

如果日期 函数不起效果,我们使用截取 拼接的方式 使用 RIGHT LEFT MID

CONCATENATE() 这些函数 一般也可以胜任

如果 还是不行也可以 使用 YEAR() DATE() EXCEL 本身的日期处理函数

另外就是修改单元格格式 ,尝试一下各种日期格式是否可以满足要求

另外的杀手锏就是 python pandas 和numpy都有 时间处理的函数

可以参考

推荐阅读

>

将excel表格数据合并后,发现常规的数字后面几位都变成0了

excel显示数字时,如果数字大于12位就会自动转化为科学计数法。如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0。所以本场景就是因为超过15位了,导致读取有问题,需要将数字类型转换位文本类型(str类型)

读取的时候都改为文本类型,即str类型读取。这样不管是前面0开头还是数值型长度比较长,不会因为是数字类型而导致读取的时候不按常理出牌。

>

xlrd和xlwt两个模块中,可以选择合并单元格的行数,但是判断合并的行数貌似不行把,它用xlrd读取时,尽管合并了但是读取是还是一行一行读的,只是合并后的数据读取时是在第一行中读取到的,接下来的都为空

以上就是关于Excel ETL处理五要素 常见问题全部的内容,包括:Excel ETL处理五要素 常见问题、B端产品 / 语言 / 大数据 / 数据处理名词解释、pandas从excel读取数据数字类型过长出现科学计数法的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10156019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存