厉害了,Pandas 的表格居然能变得怎么漂亮!

点击上方“编程派”,选择设为“设为星标”

优质文章,第一时间送达!

在使用Pandas分析数据时,我们可能经常需要来高亮显示某些数据,以便一眼看出这些数据的不同之处,今天小编就来分享一下如何在“Pandas”的表格当中高亮某些数据,通过这篇文章,读者们可以知道怎么去

  • 高亮某些符合条件的值

  • 高亮最大、最小、空值、特定值

  • 在表格当中绘制直方图

  • 绘制热力图

首先我们先要导入需要用到的模块,并且创建一个表格里面包含了用“random”模块建立的随机数,当然另外还有空值

import pandas as pd
import numpy as np
import math


np.random.seed(25)
df = pd.DataFrame(np.random.randn(10, 5), columns=list('ABCDE'))


df.iloc[3, 3] = np.nan
df.iloc[0, 1] = np.nan
df.iloc[2, 0] = np.nan
df.iloc[4, 2] = np.nan
df.iloc[5, 4] = np.nan

表格如下图所示

我们来高亮某些符合条件的数据,例如我们想要将空值高亮成蓝色,而将小于0的数据高亮成红色,而将大于0的数据高亮成绿色,我们定义一个函数,里面包含着上述的逻辑,然后通过“applymap”将我们定义好的函数用在表格上的数据当中,

def apply_colour(value):
    if math.isnan(value):
        colour = '#00B8EA' #Blue
    elif value < 0:
        colour = '#FF0000' #Red
    else:
        colour = '#008000' #Green
    return 'color: %s' % colour
    
s = df.style.applymap(apply_colour)
s 

最后的结果如下

要是想来高亮最大值、最小值、以及空值,可以用其内置的函数来操作,十分的方便,我们只需要将需要用到的颜色作为参数放入其中即可,

s1 = df.style.highlight_max(color = "yellow")
s1


s2 = df.style.highlight_min(color = "orange")
s2


s3 = df.style.highlight_null(null_color='grey')
s3

效果如下图

表格高亮最大最小值空值

当然我们也可以对指定的几列来进行高亮,例如我们想高亮“C”列、“D”列和“E”列三列中的最大值

sub1 = df.style.highlight_max(subset=['C', 'D', 'E'])
sub1


sub2 = df.style.highlight_max(subset=pd.IndexSlice[2:5, ['C', 'D', 'E']])
sub2

其效果图如下图所示

SUMMER

Lesser Heat

但其实我们可以将上述的两种方法结合起来用,既高亮某一列中的最大、最小值,同时将我们定义的函数通过“applymap”方法运用到表格中的数据上去,例如

s = df.style.highlight_max(color = "yellow", subset=['A', 'C']).applymap(apply_colour)
s

最后的效果如下图所示

接下来我们来看一下如何在表格当中绘制柱状图,代码如下

s1 = df.style.bar(subset=['A', 'B'], color='#00B8EA') # Blue colour
s1


s2 = df.style.bar(subset=['A', 'C'], align='mid', color=['#d65f5f', '#5fba7d'])
s2

最后出来的效果如下图所示

Interesting

同时我们可以在表格当中绘制热力图,代码如下

import seaborn as sns


cm = sns.light_palette("orange", as_cmap=True)
s1 = df.style.background_gradient(cmap=cm)
s1


s2 = df.style.background_gradient(cmap='PuBu')
s2

最后出来的效果图如下所示,

热力图

这次的分享就到这里了,希望大家看了之后有所收获

Django 之美


有了这款神器,轻松用 Python 写个 APP


高大上的数学科普视频,敲敲代码就能出来!


Linux 能替代 Windows 吗?


????分享、点赞、在看,给个三连击呗????

以下是一些方法使IPython输出的pandas表格漂亮: 1. 使用`display()`函数而不是简单地打印表格。这将使用Jupyter Notebook的内置HTML渲染器,可以使表格更具可视性和美观度。 2. 使用`pd.set_option()`函数来更改Pandas的全局选项。例如,您可以更改列宽度,小数位数和其他属性。 3. 使用Pandas样式功能来更改表格的外观。例如,您可以为不同的值设置不同的背景颜色,使表格更具可读性。 4. 使用第三方库,如`prettytable`或`tabulate`,来将Pandas DataFrame转换为漂亮的ASCII表格。 5. 将数据转换为其他格式(如CSV或Excel)并使用适当的工具来查看/编辑数据。例如,Microsoft Excel可以轻松地查看和编辑这些文件,同时提供了更好的可视化和格式化工具。 以下是一些示例代码演示了如何使用IPython和Pandas来使输出更漂亮: ``` import pandas as pd # 创建一个简单的DataFrame df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000]}) # 使用display()函数显示DataFrame display(df) # 更改Pandas选项(列宽和精度) pd.set_option('display.max_colwidth', 20) pd.set_option('display.precision', 2) # 显示DataFrame display(df) # 使用样式功能更改DataFrame外观 def highlight_max(s): ''' 将最大值突出显示为红色 ''' is_max = s == s.max() return ['background-color: red' if v else '' for v in is_max] df.style.apply(highlight_max, subset=['Age', 'Salary']) # 使用第三方库将DataFrame转换为ASCII表格 from prettytable import PrettyTable table = PrettyTable() table.field_names = df.columns for row in df.values: table.add_row(row) print(table) ``` 希望这些提示对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值