Python数据处理禁忌,我们是如何挖坑与踩坑
文章插图
前言初学者常见错误是混淆数据与格式的处理 , 本文就看看这种数据与格式问题是如何使你成为挖坑与踩坑者
我是这样子害别人加班【Python数据处理禁忌,我们是如何挖坑与踩坑】数据源是这样子:
文章插图
需求只是简单求出每个项目每个月的占比:
文章插图
- 看过我的 pandas 专栏 , 这些应该是基本操作吧
文章插图
"我要的是2为小数的百分比 , 这玩意输出 Excel 后 , 难道还要手工设置格式?"
于是 , 为求目的 , "不择手段":
文章插图
- 行6:为每个数据调用 Python 的字符串格式化方法
文章插图
但事实上这些都是文本(字符串) , 而非数值 。
你输出了一份 Excel , 同事拿到你的数据 , 希望使用 Excel 的 lookup 函数做一个二分法匹配一下等级:
文章插图
- 结果全是错误 。 因为右边表格(红色)的范围列是数值 , 而且数值才能正确使用范围匹配等级
pandas 格式化pandas 本质上只是一个数据处理工具 , 处理过程中我们不应该考虑最终的输出格式 。
但处理后总是要输出到某个地方 , 比如输出到 Excel , 甚至输出到界面看看结果 。
为此 , pandas 设计了格式属性:
文章插图
- 行6:自定义函数 , 指定范围的数据表的每一行都会进入这个函数 , 函数返回每个格子的格式字符串
- 行7:number-format:0.00%, 表达的就是2位小数百分比
- 行9:DataFrame.style.apply, 就能执行格式化 , 参数 subset 是应用格式的列
- DataFrame.style.apply 之后的结果看似像 DataFrame , 实际不是 。 千万别使用结果做各种日常数据操作
- 因此 , 你只能在需要输出数据表之前执行格式化操作
文章插图
- 完美 , 看到的百分比只是单元格格式
文章插图
数字格式化不太常见 , 更多的是日期格式化 , 下次再分享吧 。
推荐阅读
- 计算机专业大一下学期,该选择学习Java还是Python
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...
- 为何在人工智能研发领域Python应用比较多
- 对于非计算机专业的同学来说,该选择学习Python还是C
- 学习完Python之后,如何向人工智能领域发展