五种Pandas图表美化样式汇总

简介: 五种Pandas图表美化样式汇总

一、高亮显示

为便于展示,数据示例是用的2021世界人口数量前十国家数据

import pandas as pd
data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口数据.xlsx")
data

我们先看下该表的信息:

data.info()

除了前两列,其他列都为数字类型。

现在对指定列的最大值进行高亮处理:

def highlight_max(s):
    '''
    对列最大值高亮(黄色)处理
    '''
    is_max = s == s.max()
    return ['background-color: yellow' if v else '' for v in is_max]
data.style.apply(highlight_max,subset=['2021人口', '2020人口', '面积','单位面积人口','人口增幅','世界占比'])

如果不想对元素背景高亮处理,也可以直接更改指定元素颜色,从而达到突出重点的目的。

标记单位面积人口列大于200的元素:

def color_red(s):
    is_max = s > 200
    return ['color : red' if v else '' for v in is_max]
data.style.apply(color_red,subset=['单位面积人口'])

二、数据条显示

Excel条件格式里,有一个数据条显示方式,用以可视化表达数据大小。

Pandas Style方法中也有数据条的表达形式,用df.style.bar来实现。

还是用前面人口数据的例子,我们来看下如何操作数据条。

import pandas as pd
data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口数据.xlsx")
# 数据条显示指定列数据大小
data.style.bar(subset=['2021人口', '2020人口'], color='#FFA500')

三、色阶显示

色阶也就是热力图,它和数据条一样,都用来表达数据大小。

Pandas Style中色阶的使用也很简单,用df.style.background_gradient实现。

import seaborn as sns
# 使用seaborn获取颜色
cm = sns.light_palette("green", as_cmap=True)
# 色阶实现
data.style.background_gradient(cmap=cm,subset=['2021人口', '2020人口', '面积','单位面积人口','人口增幅','世界占比'])

可以通过选择最大最小颜色比例,调节色阶范围。

调节前:

import seaborn as sns
# 色阶实现,这里使用内置色阶类型,不调节颜色范围
data.style.background_gradient(cmap='viridis',high=0.2,low=0.1,subset=['2021人口', '2020人口', '面积','单位面积人口','人口增幅','世界占比'])

调节后:

import seaborn as sns
# 色阶实现,这里使用内置色阶类型,调节颜色范围
data.style.background_gradient(cmap='viridis',high=0.5,low=0.3,subset=['2021人口', '2020人口', '面积','单位面积人口','人口增幅','世界占比'])

四、百分比显示

有些数字需要百分比显示才能准确表达,比如说人口数据里的人口增幅、世界占比。

Pandas可以数据框中显示百分比,通过Styler.format来实现。

data.style.format("{:.2%}",subset=['人口增幅','世界占比'])

五、标记缺失值

数据集中可能会存在缺失值,如果想突出显示缺失值,该怎么操作?

这里有好几种常用的方法,一是用-符号替代,二是高亮显示

先创建一个带缺失值的表,还是用人口数据。

import pandas as pd
import numpy as np
data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口数据.xlsx")
data.iloc[1, 4] = np.nan
data.iloc[3, 1] = np.nan
data.iloc[6, 6] = np.nan
data

上面数据中有三个缺失值,我们用-符号替代缺失值:

data.style.format(None, na_rep="-")

再试试对缺失值高亮显示:

data.style.highlight_null(null_color='red')

附:将样式输出到excel

Pandas中的数据美化样式不仅可以展示在notebook中,还可以输出到excel。

这里使用to_excel方法,并用openpyxl作为内核

import pandas as pd
import numpy as np
data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口数据.xlsx")
data.style.background_gradient(cmap='viridis',subset=['2021人口', '2020人口', '面积','单位面积人口','人口增幅','世界占比']).\
                              to_excel('style.xlsx', engine='openpyxl')


相关文章
|
4月前
|
数据可视化 数据挖掘 Linux
原来使用 Pandas 绘制图表也这么惊艳
原来使用 Pandas 绘制图表也这么惊艳
103 0
|
21天前
|
数据可视化 Python
Pandas可视化指南:从零教你绘制数据图表
Pandas可视化指南:从零教你绘制数据图表
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。
【7月更文挑战第5天】了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。数据预处理涉及缺失值(dropna(), fillna())和异常值处理。使用describe()进行统计分析,通过Matplotlib和Seaborn绘图。回归和分类分析用到Scikit-learn,如LinearRegression和RandomForestClassifier。
63 3
|
4月前
|
JSON JavaScript 数据可视化
数据可视化:将Python的Pandas与Vue结合展示交互式图表
【4月更文挑战第10天】本文探讨了如何利用Python的Pandas库和前端框架Vue.js创建交互式数据可视化应用。通过Pandas进行数据处理和分析,Vue.js构建用户界面,结合两者可实现动态图表展示。步骤包括数据准备、转换为JSON、创建Vue项目、发送数据请求、渲染图表、添加交互性和优化性能。这种结合为数据理解和探索提供了高效、用户友好的解决方案,适应于数据爱好者和专家,预示着未来数据可视化将更智能、互动。
230 1
|
4月前
|
数据采集 数据可视化 数据挖掘
Python中如何使用pandas和matplotlib库绘制图表
Python中如何使用pandas和matplotlib库绘制图表
111 0
|
数据采集 机器学习/深度学习 数据可视化
5个可以帮助pandas进行数据预处理的可视化图表
5个可以帮助pandas进行数据预处理的可视化图表
194 0
5个可以帮助pandas进行数据预处理的可视化图表
|
数据可视化 数据挖掘 大数据
Pandas数据分析:快速图表可视化各类操作详解+实例代码(三)
Pandas数据分析:快速图表可视化各类操作详解+实例代码(三)
349 0
Pandas数据分析:快速图表可视化各类操作详解+实例代码(三)
|
存储 数据采集 JSON
Pyecharts结合Pandas绘制图表
数据的可视化是我们数据分析最重要的环节,图表可以化复杂为简洁,化抽象为具体,使读者或听众更容易理解.数据可视化为图表,能让数据更加直观,更加触手可及,让企业能够更迅速,更准确地做出商业决策.让企业能够更好地在所处的领域有所成就.甚至立于不败之地.之前学过pyecharts的绘图库,它的强大让我很震撼,但是再好的绘图库只是前端的一种表现形式,数据才是数据分析的最重要对象,之前《Python 绘制精美可视化数据分析图表 (二)-pyecharts》的数据都是我们手动创建的数据,这显然不符合我们日常开发需求,做数据分析,往往会有大量数据需要整理,数据量越大,得出的结论会更加准确.所以我们的数据会来自
447 0
|
2月前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
61 1
|
2月前
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
118 0