(python处理excel表格)(python处理excel表格的书)


(python处理excel表格)(python处理excel表格的书)


此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd

转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的)

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

前言

在 Excel 上处理表格非常自由方便,他不需要你把数据组织得非常规范。在 pandas 处理时,除了常见的竖向操作,其实还可以横向操作。我们通过一个小例子学会合理使用 axis 参数

(python处理excel表格)(python处理excel表格的书)

横向平均

某竞技比赛中的评分记录如下:

(python处理excel表格)(python处理excel表格的书)
  • 求出各个选择的平均得分
  • 如果在 Excel 中编写函数公式,是可以直接对每一行进行求平均

在 pandas 中,同样非常简单,只需要一个方法就可以得到结果:

(python处理excel表格)(python处理excel表格的书)
  • 行1:加载数据,注意参数 index_col=0 ,我们把 选手 列作为行索引,否则下面求平均时,就需要把 选手 列排除在外
  • 行2:现在 df 中的列全是 评分 列,直接调用 mean 方法求平均。
  • 但是,默认情况下,mean 方法中的参数 axis 为 0 ,意思是"对每列求平均",其结果是一行。这里设置参数 axis=1,即是对"每一行求平均"

更合理的评分

由于评分带有主观性质,实际生活中更常见的是去除极值后再统计。

比如,现在需求修改为"每个选手去除各自的1个最高和1个最低分后求平均得分",这里注意的是如果最高或最低分出现多个,也只是各去除1个。

本系列就是一个从 Excel 角度学习 pandas 的思路,因此,只要你考虑到手工用 Excel 如何操作,即可学会 pandas 的代码思路。

操作思路如下:

  • 逐行处理
  • 对行排序(升或降序无所谓)
  • 从行中第2个数开始,直到倒数第2个之间的数,对其求平均

下面来看看 pandas 中是如何做到上述3步:

(python处理excel表格)(python处理excel表格的书)
  • 行3-6:自定义函数,这是每行数据的处理逻辑
  • 行4:对行排序
  • 行5:使用 Series.iloc[] 做切片选择,从行中第2个数(索引是1)开始,直到倒数第2个(索引是-1)之间的数
  • 行6:求平均
  • 行8:调用 DataFrame.apply 批量处理
  • 参数1:传入自定义函数
  • 参数 axis='columns' 指定按列维度处理,你也可以使用 axis=1 。

axis 参数设置会有点难以理解, 我的 pandas 专栏第5节有关于轴的理解,可以去参考一下。

(python处理excel表格)(python处理excel表格的书)

如果你会写 lambda,这里其实不需要自定义函数:

(python处理excel表格)(python处理excel表格的书)
  • 其实没有节省多少代码(不需要定义函数名字,里面也不需要写 return)
  • 这种情况下,我不建议这样的写法,不太清晰,这里仅供参考

总结

本文重点:

  • axis 参数非常重要,pandas 中大部分对表(DataFrame)的处理方法都有此参数

需要源码的小伙伴请转发本文并私信我"python"

如果希望从零开始学习 pandas ,那么可以看看我的 pandas 专栏。

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者外星人玩Python所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(python处理excel表格)(python处理excel表格的书)
本文链接:https://www.51qsb.cn/article/dvjm6d.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-08-03
下一篇2023-08-03

你可能还想知道

发表回复

登录后才能评论