pandas100个骚操作:一行 pandas 代码搞定 Excel “条件格式”!

Python绿色通道

共 3129字,需浏览 7分钟

 · 2021-04-04


↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包



来源:Python数据科学
作者:东哥起飞

大家好,我是你们的东哥。

本篇是pandas100个骚操作系列的第 1 篇:一行 pandas 代码搞定 Excel “条件格式”!


条件格式
说实话,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()
以上就是pandasstyle条件格式,用法非常简单。下面我们用链式法则将以上三个操作串起来,只需将每个方法加到前一个后面即可,代码如下。
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)
如果结合IpythonHTML还可以实现炫酷的动态效果。
from IPython.display import HTML

def 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
如果喜这个骚操作,请给我点个赞

Python自学超级硬核资料


Ps:这里都是视频学习资料,基础不好或者零基础的同学比较适合

最后送大家一份Python学习大礼包,从Python基础,爬虫,数据分析Web开发等全套资料,吃透资料,你可以扔掉其他资料,这些资料都是视频,学起来非常友好。



扫码加微信后备注「Python新手」方便我给你发送资料,另外「Python绿色通道」专属学习群已正式成立,想进群也可扫上方二维码。


推荐阅读


  1. 外包公司干了不到3个月,我离职了...(防坑指南&文末送书)

  2. 沉入海底 2 年的微软数据中心浮出水面:故障率只有陆地上的
    1/8,除了长点贝类和藻类完全没问题

  3. 他只靠写代码,登上了胡润富豪榜!

看完记得关注@Python绿色通道
及时收看更多好文
↓↓↓




点个在看你最好看

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报