excel 过滤等操作异常

一、确认奇遇现象

处理过程经常会遇到一些“奇遇”,现在带大家来探秘:
例如下图的 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 过滤等操作异常

少侠,老夫捡到个肉眼、银眼、金眼和天眼,请问‘金眼’是你掉的吗,年青人一定要诚实回答哟!