2025-11
12

分析数据本地引用

By xrspook @ 8:25:41 归类于: 烂日记

用了一个晚上的时间,把之前直接用Deepseek或者手动转化出来的Excel数据改为引用Excel文件。这个操作并不难,但因为东西比较多,所以比较烦。首先我需要在一个Excel文件里面建好几个工作表,把每一组数据贴在不同的工作表,这样的好处是读取的时候就不怕会搞混了。在做那些工作表的同时我搞了个目录,把工作表到底是什么内容都安顿好。因为没有最终版本,所以我还没有设置超连接。做目录和超连接都挺简单。接下来的事情就是在每一个直接引用数据的py文件里修改引用方式。

因为DS的神经,所以那些格式化过的数据有些是列表,有些是元组。之所以要用元组,因为这样就一定不会出现字段长度不一致。可以这么说,被DS处理过的数据如果用列表去表达,几乎每一次可视化分析的时候都会被告知字段长度不一致。因为这个,所以后来我在提要求告诉它要作什么图的时候,我直接它先把数据以元组方式格式化,用元组的方式格式化了以后保证字段长度一定是一样的,但关键是会不会少了几个不知道。幸亏几年前我是认真学过Python的,基础的字符串列表元组字典我还是有点懂。我感觉哪怕我不是自己手动把Excel里面的某列数据转化为列表,而是把它贴掉某个地方在线转化,也不至于在转化之后东西丢失。DS是怎么做到把我的数据弄丢了呢?

之前用Python操作Excel的时候,打开Excel文件用的是xlwings,之所以用那个是因为那本叫《超简单 用Python让Excel飞起来》的书主要用的就是那个。那个跟其它库相比我觉得差异主要在于支持打开的Excel文件的后缀比较多。这样我就不需要针对这个文件用这种打开方式那个文件用另外一款,但如果我用了xlwings,但是我的程序不通过,做到一半就卡住了,那么Excel文件就会处于一个打开的状态。我只能去任务管理器那里手动把已经打开的文件关闭,否则我没办法继续下去。之前我好像没有试过光是读取Excel文件里面的数据,不把加工后的东西写回到Excel里。如果要进行Excel文件的写入,我感觉有必要把Excel文件打开,但打开了以后程序卡住无法进行下去,难以避免得有一个关闭的过程,估计可以写一段代码,把Excel通通关闭掉。只是我当初没有干这个,只是很老实地手动操作。

如果我只是读取Excel文件的某些内容,不往那个文件里面写入数据,是不是意味着或许我可以用一种类似ADO的方式读取文件数据,不需要进行实际的打开和关闭呢?

这一次我需要用pandas读取Excel里面的数据,但我不需要把加工后的数据写入到Excel,因为只有两个结果,一个是生成png图,另外一个是一些相关分析的结论。相关分析的结论我可以直接在终端里拷贝,又或者我可以直接生成txt文件。这次我用pandas直接读取,发现的确可以,而且貌似也没有那种程序虽然被卡住,但是Excel没有被正常关闭的问题。据说用panda读取Excel数据,实际上panda是引用了其它库,所以如果要在pandas里实现这个功能,要安装其它库才行。我在一开始的时候只引用了panda,就可以做到读取Excel文件,不需要把pandas引用的那些库也都引用一遍,但可以肯定的是其它库估计我都已经安装过了。

一开始尝试阶段会比较慢,后来熟了之后速度加快了,但因为我是一个完美主义者,所以对一些细节的把控还是翻来覆去,纠结了好些时间,比如网格线到底要用半透明的还是直接不透明。

但总算用一个晚上的时间,我就实现了我想做的全部。

2025-11
11

Deepseek算是在摆烂吗

By xrspook @ 8:26:32 归类于: 烂日记

AI这东西是很火,但是经过我几天的深度使用以后,又或者说只是对数据分析这个频繁使用以后,Deepseek我越用越恼火。

在完全不知情的时候,你把数据丢给它,它噼里啪啦地发给你一大段东西,感觉很牛逼,但这只是看上去。是牛逼还是傻逼得由你自己去判断,因为那一大段话可能都是扯淡,又或者可能只有一半是对的。这个对与错,首先第一是分析方法选得对不对,分析方法都选错了,也就是方向都不对,也就没必要讨论往后的那堆废话。如果分析方法是对的,但是针对那个结果出来的描述方向却跟你料想的不一致,于是等于只对了一半。自从发现它会乱用方法分析以后,我就开始对它保持怀疑态度。

理论上它的可视化图片生成应该没什么问题了吧?但关键是它就像秀肌肉一样,噼里啪啦地又给你一大堆东西,但你只是想要拿个图来看一下,发现一下规律是不是直观,仅此而已,所以这只是一个测试性的观望,但它就是要给你很多图,组图有,单图也有,同一个图给你好几种款式。简单来说就是让你目不暇接,让你选择困难症。实际上对我这种只是要看一下效果的人来说,可能那些都不合适,我也就没必要花那么精力在某种图或者某些图上面挑选着各种款式。它只知道这组数据通常可以生成这些图,但哪些图最合适还是要由我们自己判断,有可能什么图都不合适。我不知道它为什么有这种回答思路,比如说对某种数据,我要求它给我做个箱形图,你给我做个最简单的就行,然后我就知道我用不用得上。如果我觉得我用得上,我会继续给你提要求说标签是什么,坐标轴是什么,网格线之类的具体要怎么整,但是在提出箱形图这个要求不要搞其它的情况之下,一下子就给了我四个并一个的主图,两个单独大图,用的都是同一组数据,你搞得眼花缭乱,到底要干什么呢?是要我在ABCD里选一个吗?但是你ABCD全部都写在一个脚本里,对小白来说。还要我去判断保留哪些删除哪些。我感觉这波操作是画蛇添足的。估计下一次再提要求的时候,我就要写明要一款箱形图就行了。

作图也好,统计分析也好,最重要的是数据得准,但这几天用下来,我发现一个很严重的问题。无论数据是从Excel表格上传的,还是直接从Excel里复制粘贴过去的文字,作图的时候如果用的格式化是多个列表,通常告诉我。字段长短不一致,无办法操作。为什么会不一致呢?不可能不一致!一开始的时候,我觉得是我的问题,但后来我发现当我把数据整理,然后跟DS格式化之后的那些数据对比,发现居然少了一个或者少了好几个,为什么居然会有这种事情呢?数据获取不准,分析结果毫无意义,作的那些图什么用都没有。如果说图给你好多款,你只留一款,你还能自行删减,但一波数据给它之后,它只给你格式化了部分,接着就给你结果,这个很可怕。我不知道有多少人意识到了这个问题。我不知道是不是这种东西如果你买高级会员就没有这种烦恼。当我发现了这个问题以后,我就明白到,数据给它,顶多是让它给我个建议用什么分析方法。数据源还是得从自己电脑的Excel表里面用Python去实现。一开始我不明白为什么给出的代码运行出来的结果跟DS直接给结果的数值不一样。后来我发现这个字段长度不一致的问题以后我就明白了。另外一个很神经的,还有中国人的图表肯定有中文,但是它默认给我的执行代码生成的图表中文全部是方框,要解决这个东西也很简单,就是要进行中文字体的前置设定。但牛逼的是每一次默认生成的那个代码,运行结果中文永远是方框。我都被你大数据了,你知道我是在哪里使用,你知道我处理的数据有中文,你回答我的那些所有自动生成的文字也都是中文,你怎么就觉得Python生成的那个图可能不需要特别支持中文字符呢?

综上所述,无论是数据的完整性,还是图表的合适度,Deepseek离合格的要求还很远。

2025-11
10

AI的瞎扯

By xrspook @ 8:13:57 归类于: 烂日记

我一直都觉得新手的运气,这个说法非常对,因为从我的经验看来的确就是这么回事。

今年的统计分析我想有所突破,想从以前的可视化跟分析更进一步,又或者准确地来说,从以前一般的可视化分析上更进一步。我需要做一些专业判定的统计分析,但是要做什么统计分析、怎么去做?在我的本科课程里,只略微说到,并没有详细铺开。我的老师在那里略微说的时候,实际上我没有完全搞懂到底什么意思。理论上如果我还继续读研究生,还继续读我这个专业,硕士的课程里就有科学统计。我觉得那个东西无论是在我的专业还是在其他的专业都是通用的。

这一次当我和数据不断打交道之后发现分析方法的确就那些,但经典的科学统计分析方法尤其是针对检验类重复性检验的那些,跟我现在需要处理的那些数据很不一样,数据的数量以及形态很不一样。

比如说如果那是某个实验数据,通过多次重复、通过不同因素排列组合得出来的结果可以直接用那些经典的分析方法套用,最经典的那个是方差分析。方差分析后,还可以针对不同的组合进行进一步的两两分析,最后得出结论。那些分析最终通过查表,直接给出某个值的范围是什么样,给出是一个什么定性结果。但貌似在我记忆之中,20年前老师好像没给我着重说明不同的分析方法的前置条件各自是什么。比如方差分析的前置条件是默认不同组别的数据数据量相等、方差接近、每组数据都应该符合正态分布。符合正态分布,但是方差不相同,会用另外的方法。如果方差跟正态分布都不满足,就只能用非参数的分析方法。所以折腾了一大轮以后,我发现我的数据如果真要较真,只能用非参数的方法。这些是在我折腾了一圈以后才发现的。如果一开始我就有系统地学过科学统计,显然我就不会绕这个弯路,但如果我真没学过,我又能怎么办呢?

当我把两组数据经过脱敏以后交给Deepseek,它滔滔不绝地给蹦出一大堆东西。光看那些文字,你觉得那真的是头头是道,但关键是懂行的人一开始就知道那有毛病。情况就好像是两个人再进行讨论,其中有一个说,月经周期通常是28天,±7天都是合理的,月经量大概是多少,持续时间大概是多少,月经期间会有什么生理反应,可以做什么措施避免那些不良的感受。噼里啪啦说了一大堆,但他报告结束报告之后,发现原来他们需要讨论的对象不是女人,而是老年男性。所以之前那堆关于月经的东西全部都一无是处,可以说是牛头不对马嘴。但你光看那堆东西,又不觉得有什么问题。我觉得Deepseek给我的感觉就是这样,我不知道其它AI怎么样,之所以有这种感受,是因为当我把那组脱敏的数据给Deepseek以后,它给我做了一大通的方差分析和基于方差分析的两两对比,但是当我真的纠结结果以及执行过程的时候,却发现好像我那组数据根本不应该拿去做方差分析。

由此可见,AI牛逼起来的时候真的好厉害,但也不排除它只是在和你瞎扯。

2025-11
9

又想起了Python

By xrspook @ 8:44:06 归类于: 烂日记

大概两年前,我买了一本叫《超简单 用Python让Excel飞起来》的书。那本书是怎么买的呢?我搜索关于Python跟Excel的书,然后就看到了它。说白了就是教你用Python去处理Excel。前面的部分是一些批处理,后面的那些是利用Excel的数据作图。批处理的部分我看得挺认真,也实际操作过。感觉基本上都是可以实现的,我在VSCode里写Python,然后引用Excel文件,最后把结果输出到Excel。的确,这样干可以批处理一些基本的问题,但关键是我是个完美主义者,所以我对输出格式有一定的要求,实际上这本书教你的东西不怎么包括具体调整格式本身。通常来说做法大概是读取文件,然后通过pandas处理,最后输出。在这里我学得比较认真的部分是批处理文件,无论是把一个工作簿的每个工作表分别另存为单独的工作簿还是把某个文件夹里面的工作簿全部都合并到一个工作簿里。这些翻来覆去的操作其中一个跑不掉的是要进行一定的循环,循环的思路搞清楚了以后一切都好说。学的时候很认真,也都全部尝试过了,但一段时间之后不用还是会全部都忘光光,最后剩下的只是知道一定可以通过批处理实现这些功能。

在电脑里面安装Python,然后通过这种方式的确是可以处理Excel文件,后来我也进一步对那些输出的文件进行了格式控制,但总的来说,还是有些不如人意的地方。就数据处理本身来说,Python没有任何问题,但关键是跟VBA这个原生的东西相比,在处理格式方面还是显得有点有心无力,又或者无法控制。一个很明显的地方就在于跟VBA相比,Python读取文件跟输出文件都得一定时间,可能数据处理本身不需要多少性能,但关键是打开文件关闭文件这都需要时间。后来机缘巧合之下,我知道了在VBA里可以通过ADO的方式用SQL解决数据的问题。ADO的方式意味着我并不需要真的打开文件,这样就节省了很多时间。以至于后来我用VBA取代了Python的功能,因为Python之所以好用是因为把Excel的数据传进去了以后,它对数据进行了一个类似数据库的标准化改造,然后用标准的语言实现某些功能。相比之下我觉得SQL更简单易懂。所以自从迷上了ADO+SQL以后,我基本上就没再用Python处理Excel了。我一直也没有进行太多高端的操作。可以肯定的是,如果我要做的话,实现同样的功能,我可以通过这两种途径分别得出方案。

回到一开始那本书,前面部分说的是一些批处理,后面部分说的是用Python作图,其实那个时候我并不明白为什么要用Python作图,因为Excel本来就可以作图,而且就控制来说Excel是可视化的,Python全部都得写上去,所以后面作图的部分我看得很潦草,直接快速掠过,只是知道能干这种事而已。

直到这一次数据分析需要做箱形图。Excel可以做箱形图,但对箱形图的控制不如人意,我想到了Python,也想到了R语言。我知道这两个东西通过某些包就可以轻松做出我想得到或者想不到的图。

R语言被我放下了太远,以至于我已经基本不知道该如何操作了,所以我选择先用Python探索一下作图。

2025-11
8

Excel里的箱形图

By xrspook @ 8:17:33 归类于: 烂日记

不知道哪一次Microsoft 365升级以后,Excel的图表里面就多了一个箱形图。在做一些我一开始没什么头绪的图之前,我都会选择数据,然后让Excel给我推荐一下图表,我从来没有试过被推荐箱形图。我只是知道那个东西的存在。同时我也没有在Excel相关的公众号的推送里面看到过箱形图的使用方式。或许他们是有推送的,只是我越来越懒惰,忽略掉了,但我之所以会忽略掉另外一个很重要的原因,可能是他们有推送,但是推送的频率不高,而那些不高的频率又刚刚被我因为这样那样的错过了,所以我一直没看到。这个忽略掉其实也不完全怪我,微信也是一个很重要的因素,因为现在的公众号的信息不会全部展开,除了第1篇会展示以外,余下的那些就只会说还有一篇还有两篇,不手动点开根本看不到,所以万一箱形图的推送出现在那个地方,当然就很容易被我忽略掉。不知道为什么微信要做这样的设置,其实手指多划两下没什么问题,又或者我觉得微信可以让用户自行选择到底要不要展开。更精细化的管理可能是对这个公众号不折叠,对那个公众号只显示首篇。这种分类方讨论的方式就像是正常的群显示聊天条数和那些忽略的群只给一个红点。

只要你有一组数据,你就可以做出箱形图,因为它是根据最小值两个四分位数中位数以及最大值组成的。简单来说这个可以把一组数据浓缩成万物皆有的几个数,然后你就可以把它们放在一起作图或者分析,我感觉无论是箱形图还是小提琴图,都是一个可视化分析数据的工具,能更直观地看到数据的情况。跟箱形图相比,小提琴图还多了一个数据密度的展示。如果离散性很好的话,小提琴图显然更妙,但如果本来就不怎么符合正态分布,也就没必要做小提琴图了。

以前的Excel不能直接做出箱形图,大家只能做堆积柱状图,然后进行加工,得出类似箱形图的东西,但据说从Office 2021开始就有了这个功能,但是有些人说他们的版本里有,但有些人说他们的版本里没有,我猜这会不会跟家庭版和专业版的区别有关,又或者有些人进行了更新,但有些人选择永不更新?

虽然现在的Microsoft 365里面可以做箱形图,制图方式也很简单,但是跟其他图表比起来,箱形图的各种设置感觉都是怪怪的。无论是字体、字体大小、标题、坐标轴等等对其它图来说很好控制很容易实现的功能搞箱形图的时候都很奇怪感觉很别扭。其中一个让无数通过Excel直接做这个图的人感到很无奈的是理论上做箱形图的时候,第一行是标题,余下的那些行是数据,数据可以是同样大小的也可以是不同大小的。按照大家的理解,数据是通过箱体现的,第一行的标题应该就是X轴上的标签,但实际上无论你怎么操作。现在直接出来的箱形图那里的X轴标签都是1。搜索一下就发现很多人都遇到这个问题,貌似我只在一个地方看到了可能的解决方案,首先你把那个1去掉,然后插入图例,选择在底部展示。这样的话,上面的那些箱算是终于有了标签,虽然那个标签估计不会跟那个箱体完全对位。这个思路太诡异了,设计Excel箱形图的人怎么会想出这么离谱的事情。为什么在Excel里这个图可以直接生成,但实际上效果却这么的糟糕呢?同样让我无法理解的就是我无法控制几个箱之间的距离或者是箱体的宽度。高度是由数据本身决定的,但箱体的宽度,理论上用户可以自行设定。但貌似就没有一个直观的方式让你好好操控。那种感觉跟浪潮开发的软件有异曲同工之妙,功能有了,但好不好用我不管。

箱形图是数据分析里一个非常经典的可视化表达方式。Excel不能很好满足我的要求,我只能用其它方式实现。

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress