GUI的坑有点难爬出来

为了实现数据方便的输入,我最近一直在学习GUI怎么弄。首先第一个坑就是选哪个模块来做GUI成了困绕我很多天的难题。Python3的优点在于数据处理,不利于面版制作的先天性缺陷来了~~原生态的tkinter用起来感觉手册真难看,自己东拼西凑终于自己给自己写了一本手册,开始写的时候就先来解决:表格显示的问题。

所有数据进出都是表格来实现,搞定表格就搞定了所有。但坑太大了,用label要一行一行的来循环实现交互,这不是要命吗?那转用Treeview发现手册几本没有,看别人有一段,没一段的代码与博客,想要解决输入问题搞了个把月今天终于搞定了。

但接着又是提取treeview的数据的天坑,太难了……

现在有种想转pyqt5的打算。

终于完成了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强行改数字出现警报的坑,新手注意避坑。

大功告成!

终于完成正则表达的内涵

((?<=[0-9]{1})([a-z]|[A-Z]))|(([a-z]|[A-Z])(?=[0-9]{1}))

为了解决数据公式表里面的数字与字母的进行乘法的问题,我学习了正则表达式一个星期。总是感觉自己会了,又写不出来需要的东西。几次测试与反复看教程一个星期,终于今天搞明白了:原来还是基础的东西没有理解透:正则表达式的“正向先行断言”、“反向先行断言”、“正向后行断言”、“反向后行断言”的基本含义,所以写不对。

今天认真看了一下字面意见,晃然大悟,一切迷题终于解开,豁然开朗!

12223x+333y+n444+c

终于提取出了上面几个字母,等待迭代写入新的公式:

12223*x+333*y+n*444+c

不可否认,正则表达式的强大,可以搞定所有需要处理文字与公式妥妥的。

MySQL两行命令解决了我这个小白折磨两天的问题

cd /usr/local/bin

ln -fs /usr/local/mysql-8.0.11-macos10.13-x86_64/bin/mysql mysql

由于pycharm无法连接Mysql 8.0+数据库(提示缺少驱动),我想安装5.7版本的Mysql,结果又安装不了:提示已有更高的版本,无耐又安装回8.0。也不知道是原来就有问题一直没有注意,命令行内无法:mysql -u root -p

折磨了我两天,终于找到了上面两行办法。因为默认安装路径无法映射启动,搞死人了。试完两行命心里面还没有底,结果居然改连成功。可以直接命令进入了,开心。接下来只要解决IDE怎么连接就好了。

2020年中秋与国庆接着努力

今年中秋是我一个人过,留在办公室一个人写东西。

过着节又胃不好不能多吃。从早上起床我就到办公室撸代码,撸到吃中午饭,撸到吃晚饭,再到到21:00听着一首歌《夜空中最亮的星》,感觉有点疲倦。

经过了长期奔跑,看到了前路更远……心中是无限感概。

今天弄了一天,学习与接触非常非常的多!从矩阵操作,到数据正确判断,再到字典操作,再到py2app,再到软件界面启蒙。实在太多太多了,感觉要学习的东西真TM的多。而程序不能一知半解,哪个参数随时都会成为bug存在。

为什么一天要经历了这么多?这就要从我的需求开始:首先材料计算的数据库需要导入Excel,数据读入了,数据就要清洗。清洗完了,要进行增删查改。计算过后回导到Excel生成报表。 为形成完整报表:Excel表格要控制行高、列宽、表头、字体、颜色、边框、对齐、加粗……就学了两天才基本撑握(还有一个表头没搞定),能看手册写代码了(还不能盲写),所以我感觉已经是最快的速度了吧。

用几天时间,又写了一个随机数学练习的小程序:用于小孩数学的练习。写好了,但又不能发布,又必须去找生成App的库吧?马上找到py2app这个库,搞了两个小时出错,找出问题是:python2.7下运行出错,切换到python3终于成功。App进行试运行,没有反应?MD马上查!又查到问题所在:没有设定界面的程序,是不会出现结果的。马上去找tkinter的库来实现界面化……找了两个案例,发现能实现,也不复杂。但参数很多个,要理解后写自己的东西这一个小时学习还真办不到,估计熟悉需要一天。

说起来就是泪~~~爬过了一个坑又一个坑。我简直开始佩服自己了!入门就是这样,大师就是用「度娘」,无数次去找别人爬过的坑,真的感觉:互联网很多人的博客简直就是宝库!还有开源程序的:开源手册。简直要感动到泪目!

在此,感谢各位大神。是你们在引导世界的发展,是你们在继往开来,把没有的变成有的;把国外的变为国内的;把各种bug变成解决方案 。

2020年10月1日,前方的路还很远,慢慢来,上火就麻烦了。

基本熟练DataFrame的增删查改问题

一直以来,由于学习的力度与接触DataFrame的时间不多,卡住我很久的时间都在解决pandas的DataFrame的操作上。

从一开始,命令行一堆一堆的错误提示,现在基本能把矩阵打一圈回来,依然正确的操作。

得益于集中力量来学习操作数据的基本操作,否则寸步难行。

直到今天,能够比较熟炼的自由盲眼操作DataFrame里面的行、列:增加,删除,改动,查找,以及各种变化,对于高手来说其实很简单,但必须极为熟悉……要像呼吸一样自然。

接下来,如果经常运用如飞,把格式化的东西代进来,程序运用将指日可待。

读书会《丰乳肥臀》

用时29时1分完成了莫言这一部大作,读完感慨良多。可叹世界如此多的坎坷,皇朝变换,历史更替谁都将成为历史的尘埃。

从故事里如此众多的角色里,主人公以及八个姐妹命运里,历史时期其实已经决定了每一个人的命运。即使你是穿越而来的未来先知,在这个历史变革里、在时代潮流下、在炮火连天的战场上、在金钱与腐败上,你做的,也许还是和书里面的人物一样。

一本好书,其实不止是文笔有多么精彩、手法有多么厉害、人物多么丰满、故事多么精彩。而这本书读完更能让人反思生而为人,生命的意义。

Excel多个工作表保留原有工作表写入问题

之前一直使用pandas对数据进行操作,直到今天为了给小孩子写一个随机数字练习的作业程序,发现pandas下以前直接用:data.to_excel(your_path,sheet_name=’sheet1′)的方法会覆盖掉原有数据,无论你是如何创造新表格都会发现:原有表格不翼而飞

为解决这个问题,又卡壳了几天:查攻略与手册,都是采用ExcelWriter进行操作,但试了好多次都发现表格没有改动。最后,在pandas手册上找到了原因:所有代码都正确,但没有看到excel文件的更新,最终发现是writer.save()在搞鬼。

于是问题飞速解决,代码最后一行:增加一个writer.save()数据立现。

用Python内的matplotlib.pyplot进行绘图

近期进度,采用Matplotlib.pyplot进行绘图,绘图才刚刚开始就碰到很多问题。

最关键的是:1、绘制曲线图;2、柱图;3、散点图;

功能不多,但数字的操作还是十分重要。测试发现:数组里面的index是无法绘图的。

一般绘图是数据已经清洗完了,标签也需要画出来,所以index不能绘制是十分恼火的。

特别多的情况是:groupby生成的数组与数据透视表,为解决这个问题找了两天功略最后完美解决:用df.reset_index()函数,重设标签。

碰到了困难:工作生活学习难以坚持

从上次中断晚自习以来,一直没有新的进展了。学习一旦中断,想要拿起来:好难!

所以又虚度了几天,心里觉得不知道如何是好。人,生而为什么?想想也不是为了坚持学习、坚持奋斗、坚持努力,实际是为了对自己在这个世界做一些有价值的东西,能为自己喜欢做的事情而努力奋斗。

再学习,再复习,再加油!你行的~每天进步一点点,每天学习一点点,不要用力过猛……平平淡淡才是真。