excel 过滤等操作异常
一、确认奇遇现象
处理过程经常会遇到一些“奇遇”,现在带大家来探秘:
例如下图的 exl 文件:
读取exl并打印结果,开始了解“奇遇”
发现奥秘
,果然不简单,明明是 6 位数字,长度却是 8。更为神奇的是,鼠标去选择打印结果及exl单元格内容,确定没有空格,前后也没有占用字符长度
。替换空格符为空字符==>没有空格符
选择单元格文本==>确认只有6位
果然简单的'=='过滤也是不行的
过滤使用 ==、macth、starswith、isin等都全部阵亡
过滤结果全为空
二、分析原因
眼见不一定为实
,大家看到的,并不一定是真实的情况。pandas的bug ?
,这个库不是刚出来的,怎么这么容易被我们发现,当然也并不是不可能。
那我们应该先从自身环境找原因,
既然看起来是 6 个字符,长度却是 8,那么可能确实有这么 2 个字符存在,但它看起来“不占”字符长度,实际上却占了字符长度,这种字符可能是在大家电脑无法显示,或在特定环境下不显示,在 excel 也不能被复制、选择等,可理解成电脑不认识这个符号,无法显示出来
。
三、解决方法
正在编辑,请稍后。。。 。。。
顺着上面的思路,先找出这个符号
,我们可以在打印出来时,使用键盘左右方向键去选择文本,如果仔细的话会注意到‘010101’字符的左右两边如果继续按 1 次方向键,光标是不会移动,再按第二次,光标才移动了,那么好了,我们可能找到这个“隐藏的"
字符。
先在打印出来文本的窗口光标移动在文本末尾,再使用 shift+ 方向右键按键一次,看到光标不动,但不必理会,继续按 ctrl+C 复制这个字符,这时已经get隐藏字符
,打开 excel 文件,替换成空字符。
为了展示给大家看,这边使用查询,可以发现粘贴到查询文本框内是无字符长度的字符,搜索结果却不少。
继续点击“替换”成’-’
从现象证实了我们的猜想,那后面要做的是替换掉这个特殊字符后再继续处理使用正则来处理,lv_df3=lv_df.replace('', '',regex=True)
,参考下图请注意,这里首端和末尾的神秘字符也不同,虽然在excel是一样的,因此要分别替换一次,共2次
代码里,前面''虽然看起来和后面一样,但前面''内粘贴了神秘字符,后面那个是空字符
四、get 新技能
到这里,少侠已经通过“奇遇”get 到新技能“天眼”。什么,还没get,请重新回到第二节,继续修炼。。。
少侠,老夫捡到个肉眼、银眼、金眼和天眼,请问‘金眼’是你掉的吗,年青人一定要诚实回答哟!
👍
就你皮
为啥我的长度就是 6
哈哈哈😁,就等着你呢
解决方法是等着我们完成吗?