前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >懂Excel就能轻松入门Python数据分析包pandas(十三):消除合并单元格

懂Excel就能轻松入门Python数据分析包pandas(十三):消除合并单元格

作者头像
咋咋
发布2021-09-01 14:35:51
1.5K0
发布2021-09-01 14:35:51
举报
文章被收录于专栏:数据大宇宙

> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas

前言

做数据分析时,当你拿到一份 Excel 数据之后,我相信你还没有看数据,心就已经凉了一半。这是因为大概率数据格式"好看不好算",今天来看看怎么解决报表格式常见的合并单元格问题。

案例1

今天你接到一个分析需求,需要统计2年内个城市月度平均销量。

你心里期待公司系统导出的数据是这样子:

实际导出的是这样子:

  • - city 列都是合并单元格

你的脸色开始凝重了,因为发现正常导入后的 DataFrame 是这个鬼样子:

  • - Excel 中的合并单元格,只有第一个格有值,其余的都是空值

其实很容易解决,pandas 中有填充空值的方法:

  • - .ffill() ,f 是 forward 的意思。ffill 意思是:"拿前面的值填充后面的空值"

现在你终于放下心头大石,轻松解决城市月度均销量数据:

  • - 不多说了,专栏都有说的内容

> pd.Grouper 可以使用各种频率,具体内容请看专栏第19节内容

案例2

有时候你会遇到多列的合并单元格:

  • - city 和 sales 列都有合并单元格

pandas 中大部分操作都能在多列间进行:

---

案例3

许多初学者对 pandas 有一种错觉,觉得遇到不同的数据就要重复写代码,其实我们完全可以写出许多便捷的方法。

比如,我们可以遍历一个 DataFrame 的列以及类型,发现是文本则自动调用 ffill 方法,这样不管数据有多少合并单元格列,都可以全自动填充:

  • - 定义方法 auto_fill_merge_cell ,参数只需要传入数据 DataFrame
  • - 关键调用 pd.api.types.is_string_dtype ,判断列是否文本类型

现在只需要简单调用此方法即可,甚至不需要指定哪些列:

> 代码的灵活性在于你能够按照自己的想法,随意组装功能。别再以为教程所有的代码都需要重复编写

总结

  • - 遇到 Excel 的合并单元格数据时,可以使用 DataFrame 或 Series 的方法 ffill,向前填充空值

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档