pandas100个骚操作:一行 pandas 代码搞定 Excel “条件格式”!
统计与数据分析实战
共 2762字,需浏览 6分钟
·
2021-03-08 15:53
![](https://filescdn.proginn.com/6ed10baceccb5d6189dbed8c035b4b71/202df6524e8adaf2f99701a33bd37a45.webp)
大家好,我是你们的东哥。
本篇是pandas100个骚操作系列的第 1 篇:一行 pandas 代码搞定 Excel “条件格式”!
style
方法,二是要得益于pandas的链式法则
。import pandas as pd
df = pd.read_csv("test.csv")
df
![](https://filescdn.proginn.com/fcf576264604efd3599f4f6e1e530fcf/0306aa6d243e27810eb96136e8bf9694.webp)
bar
代码如下。df.style.bar("Fare",vmin=0)
![](https://filescdn.proginn.com/20d1626500b8adbc13b3291b359b17ab/de7370faa62d5344b2a53273fa40687a.webp)
background_gradient
,深颜色代表数值大,浅颜色代表数值小,代码如下。df.style.background_gradient("Greens",subset="Age")
![](https://filescdn.proginn.com/5aba9c235647dd1c8c4b740282fac0ea/b77e50d7b1b7d001165e7999cd7d0dc8.webp)
highlight_null
,表格所有缺失值都会变成高亮。df.style.highlight_null()
![](https://filescdn.proginn.com/e9dbce29ccd6c3e1e172b49a7045c516/7cc25a1c48a1fd72492b712f3b2e9a7b.webp)
pandas
的style
条件格式,用法非常简单。下面我们用链式法则将以上三个操作串起来,只需将每个方法加到前一个后面即可,代码如下。df.style.bar("Fare",vmin=0).background_gradient("Greens",subset="Age").highlight_null()
![](https://filescdn.proginn.com/a7183adff2c2cd7b6019daeb4b8b636c/58309e58ed42dae25c05a4a0c0dd4958.webp)
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)
![](https://filescdn.proginn.com/2e09f06492099f7431247c91746bdcac/909cc765efb6e1ae13dce35a2da69114.webp)
Ipython
的HTML
还可以实现炫酷的动态效果。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
![](https://filescdn.proginn.com/f280db6970098c9b889cf90086fc0e63/2e09f06492099f7431247c91746bdcac.webp)
style
条件格式的所有用法,可以参考pandas的官方文档。![](https://filescdn.proginn.com/14b3c1097b442b2ecfb0ffe381f63d0a/27daaf93a74347bbd04d9485db5ccd24.webp)
爱点赞的人,运气都不会太差
评论