excel 过滤等操作异常

艺赛旗 | 中国RPA行业领航者 2019/11/28 11:06

一、确认奇遇现象

处理过程经常会遇到一些“奇遇”,现在带大家来探秘:
例如下图的 exl 文件:

新知图谱, excel 过滤等操作异常      读取exl并打印结果,开始了解“奇遇”

新知图谱, excel 过滤等操作异常
发现奥秘 ,果然不简单,明明是 6 位数字,长度却是 8。
更为神奇的是,鼠标去选择打印结果及exl单元格内容,确定没有空格,前后也没有占用字符长度
新知图谱, excel 过滤等操作异常
替换空格符为空字符==>没有空格符
新知图谱, excel 过滤等操作异常
选择单元格文本==>确认只有6位
新知图谱, excel 过滤等操作异常

果然简单的'=='过滤也是不行的
新知图谱, excel 过滤等操作异常

新知图谱, excel 过滤等操作异常

过滤使用 ==、macth、starswith、isin等都全部阵亡
新知图谱, excel 过滤等操作异常

新知图谱, excel 过滤等操作异常

新知图谱, excel 过滤等操作异常

过滤结果全为空

新知图谱, excel 过滤等操作异常

二、分析原因

眼见不一定为实 ,大家看到的,并不一定是直接的情况。
pandas的bug ? ,这个库不是刚出来的,怎么这么容易被我们发现,当然并不是不可能。

那我们应该先从自身环境找原因, 既然看起来是 6 个字符,长度却是 8,那么可能确实有这么 2 个字符存在,但它看起来“不占”字符长度,实际上却占了字符长度,这种字符可能是在大家电脑无法显示,或在特定环境下不显示,在 excel 也不能被复制、选择等,可理解成 电脑不认识这个符号,无法显示出来

三、解决方法

正在编辑,请稍后。。。。。。
顺着上面的思路,先 找出这个符号 ,我们可以在打印出来时,使用键盘左右方向键去选择文本,如果仔细的话会注意到‘010101’字符的左右两边如果继续按 1 次方向键,光标是不会移动,再按第二次,光标才移动了,那么好了,我们可能找到这个 “隐藏的" 字符。
先在打印出来文本的窗口光标移动在文本末尾,再使用 shift+ 方向右键按键一次,看到光标不动,但不必理会,继续按 ctrl+C 复制这个字符,这时已经 get隐藏字符 ,打开 excel 文件,替换成空字符。
为了展示给大家看,这边使用查询,可以发现粘贴到查询文本框内是无字符长度的字符,搜索结果却不少。
新知图谱, excel 过滤等操作异常
继续点击“替换”成’-’
新知图谱, excel 过滤等操作异常

从现象证实了我们的猜想,那后面要做的是替换掉这个特殊字符后再继续处理
使用正则来处理,lv_df3=lv_df.replace('‬', '',regex=True) ,参考下图
请注意,这里首端和末尾的神秘字符也不同,虽然在excel是一样的,因此要分别替换一次,共2次
新知图谱, excel 过滤等操作异常
代码里,前面''虽然看起来和后面一样,但前面''内粘贴了神秘字符,后面那个是空字符
新知图谱, excel 过滤等操作异常

四、get 新技能

到这里,少侠已经通过“奇遇”get 到新技能“天眼”。
什么,还没get,请重新回到第二节,继续修炼。。。 

相关推荐

更多“Excel”相关内容

新知精选