终于完成了pandas矩阵内部字符串的正则判断与替换

前两天已经完成了,在Python环境下,进行正则判断并抽换字符的学习。为了进一步运用到数据读完后的公式清理,在pandas矩阵下进行迭代修改。花了两天时间小心测试,今天很开心解决了几个坑,终于成功!从此以后,可以手撕代码,自己搞定所有pandas二维表格里面所有对字符串的正则判断后的操作,可以说是精确操作每一个字符了。Oh Ye!

避坑指南:

正则找出符合要求的字符串,这个不再多说,看前一天的博客。

现在进一步要做的就是把正则做成三个函数:(以我查找a里面每一行公式更改为例)

目标用于计算:

解决办法:3个自字义函数+1个循环解决:

先写两个正则表达式存前备用,一个找字母在数字右边的正则;一个找字母在数字左边的正则:

再把它们搞成函数:这一步是re.sub(正则,替换函数/或数值,原数据),里面替换函数必须要正则group()对像否则会失败。新手小心脱坑!

建立两个替换函数,把需要替换的数字,直接改好,再return 出来。函数名和里面的参数就别计较了,我乱写的需要规范一些自己改,我是命令行下测试得急,没有规范操作。(注意*号加的位置,一个在后,一个在前)马上用re.sub

我为了方便一次将左右两个条件替换完,用了一个函数一次运行出结果。笨是笨了一点,但简单好理解,高手可以一次写好正则再用if来区分。函数写完了,拿随便写了一个b的字符串测试一下看对不对:

OK正确:说明正式表达式替换字符串没有什么问题了,接下来就只要将find_all(x)函数扒下来,写入到循环让二维表数值进行迭代替换就行了。

简单到五行代码就把a[0]里面的所有字符串跑了一遍,并把公式没有*的位置迭代进来了。a.loc[i,0]=your_number这种方法是避开pandas强行改数字出现警报的坑,新手注意避坑。

大功告成!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注