【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!
来源:Python数据科学
作者:东哥起飞
本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel “条件格式”!
系列内容,请看????「pandas100个骚操作」话题,订阅后文章更新可第一时间推送。
条件格式
说实话,Excel的 “条件格式” 是东哥非常喜欢的功能之一,通过添加颜色条件可以让表格数据更加清晰的凸显出统计特性。
有的朋友在想,这样的操作在python可能会很复杂。但其实一点不复杂,而且只需一行代码即可。
为什么可以做到一行代码实现 “条件格式”?
一是使用了pandas的style
方法,二是要得益于pandas的链式法则
。
下面我们来一起看个例子,体验一下这个组合操作有多骚。
实例
首先,我们导入数据集,使用经典的titanic中抽样的部分数据。
import pandas as pd
df = pd.read_csv("test.csv")
df
可以看到,现在这个dataframe是空白的,什么都没有的,现在要给表格添加一些条件。
1、比如我们想让Fare变量值呈现条形图,以清楚看出各个值得大小比较,那么可直接使用bar
代码如下。
df.style.bar("Fare",vmin=0)
2、再比如,我们想让Age变量呈现背景颜色的梯度变化,以体验映射的数值大小,那么可直接使用background_gradient
,深颜色代表数值大,浅颜色代表数值小,代码如下。
df.style.background_gradient("Greens",subset="Age")
3、让所有缺失值都高亮出来,可使用highlight_null
,表格所有缺失值都会变成高亮。
df.style.highlight_null()
以上就是pandas
的style
条件格式,用法非常简单。下面我们用链式法则将以上三个操作串起来,只需将每个方法加到前一个后面即可,代码如下。
df.style.bar("Fare",vmin=0).background_gradient("Greens",subset="Age").highlight_null()
当然,如果你希望加更多的条件格式效果,还可以继续让链式更长,但不论条件怎么多,都只是一行代码。
其它操作
上面仅仅是列举了三个style
中常用的操作,还有很多其他操作比如高亮最大值、给所有负值标红等等,通过参数subset还可以指定某一列或者某几列的小范围内进行条件格式操作。
# 负值标为红色
applymap(color_negative_red)# 高亮最大值
apply(highlight_max)# 使某一列编程±前缀,小数点保留两位有效数字
format({"Coulumn": lambda x: "±{:.2f}".format(abs(x))})# 使用subset进行dataframe切片,选择指定的列
applymap(color_negative_red,subset=pd.IndexSlice[2:5, ['B', 'D']])
另外,还有很多的效果可以实现,比如结合seaborn
的各种风格。
import seaborn as sns
cm = sns.light_palette("green", as_cmap=True)
df.style.background_gradient(cmap=cm)
如果结合Ipython
的HTML
还可以实现炫酷的动态效果。
from IPython.display import HTMLdef hover(hover_color="#ffff99"):return dict(selector="tr:hover",props=[("background-color", "%s" % hover_color)])styles = [hover(),dict(selector="th", props=[("font-size", "150%"),("text-align", "center")]),dict(selector="caption", props=[("caption-side", "bottom")])
]
html = (df.style.set_table_styles(styles).set_caption("Hover to highlight."))
html
关于style
条件格式的所有用法,可以参考pandas的官方文档。
链接:https://pandas.pydata.org/pandas-docs/version/0.18/style.html
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
本站知识星球“黄博的机器学习圈子”(92416895)
本站qq群704220115。
加入微信群请扫码:
【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!相关推荐
- python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...
原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了mp.weixin.qq.com 有时候我们做数据可视化并 ...
- python 获取文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...
原创:小dull鸟 python数据分析之禅 原文链接: 有时候我们做数据可视化并不需要特别复杂的功能,仅仅是想把简单的数据用图形展示出来 今天就给大家介绍一种非常适合新手的python可视化库--p ...
- 【译】一行css代码搞定响应式布局
译文出自:闪电矿工翻译组 原文地址: medium.com/free-code-c- 原文作者: Per Harald Borgen 仓库原文链接:issue 译者: hanxiansen 在这篇文章 ...
- 【springboot+easypoi】一行代码搞定excel导入导出
原文:https://www.jianshu.com/p/5d67fb720ece 开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事 ...
- 使用Python rembg库进行抠图:一行命令就搞定
安装 pip install rembgrembg i elephant.jpg elephant-new.jpg 效果 参考链接 https://github.com/danielgatis/rem ...
- python利器怎么编程-Python实现翻译小工具!几行代码搞定!装逼利器有没有!
一.背景 利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面 二.代码 进群:548377875 即可 ...
- Python:PDF转PNG(6行代码搞定)
之前搜了几个博客,但是pip安装包一直出错,要么就是代码已经比较老了,一些方法已经重命名了.然后在stackoverflow,一次就找到了能用的方法. 首先,在命令行使用pip安装库: pip ins ...
- python 判断图片中物体位置_Python 10行代码搞定图片中物体检测
使用Python, 如何编程实现图片中的物体检测[也叫对象检测/object detection]? 怎么知道图像中有哪些物体? 或许您想要计算图像中苹果的数量? 在这篇文章中,我将向您展示如何使用P ...
- vue项目 一行js代码搞定点击图片放大缩小
一行js代码搞定xue项目需要点击图片放大缩小,其实主要用的是用到了vue:class的动态切换,内容比较简单.一开始我把维护的需求想得太复杂了,和测试小姐姐聊了一下才反应过来. 两个月不到跟了四个项 ...
最新文章
- TSVNCache占用CPU的解决办法
- 《剑指offer》c++版本 3.数组中重复的数字
- react render没更新_web前端教程分享React学习笔记(一)
- eclipse的任务列表
- 关于微信支付的退款那些事
- 1.18.2.5.Table APISQL(查询表、Table API、SQL、混用Table API和SQL、输出表、翻译与执行查询、Blink planner、Old planner)等
- 姜黄的毒副作用调研汇总(调研手稿一)
- php 对比两个压缩包内容,php实现的zip文件内容比较类
- 推荐系统相关算法(1):SVD
- win10笔记本已连接充电器却不显示连接怎么解决?
- Android 原创新作 超级水平仪 发布
- 女博士实名举报北航人工智能教授:性骚扰!
- java 获取class的方法_[Java教程]Java反射定义、获取Class三种方法
- [xctf] 江苏工匠杯easyphp
- MacBook Air装单独win7
- MongoDB免安装版安装
- 【未完成】7-12 任务调度的合理性 (25 分)
- 网络布线之有线传输+UTP线缆连接
- mysql主备有几种方式,mysql 主备 主从 主主模式介绍
- Jess学习基础(二)