当前位置: 首页 > news >正文

如何为 Polars DataFrame 添加颜色

原文:towardsdatascience.com/how-to-color-polars-dataframe-8ada66161226

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/06f1c9a28173f83fce19bf3eba329b9b.png

由 ChatGPT 生成的 AI 图像。提示:在雪地景观中画一只北极熊。

由于 Polars 库于 2022 年发布,它因其作为超快速 DataFrame 库而迅速获得了人气。与 Pandas 相比,白熊经过测试并被证明要快得多。根据官方 Polars 网站,它声称性能提升了 30 倍以上。

然而,没有什么是完美的。Polars 库似乎有一些限制。

当谈到表格风格化时,Polars 提供的选项较少,而 Pandas 提供了 内置的样式化工具。如果你想要为 Polars DataFrame 添加颜色,一个直接的方法是将表格转换为 Pandas。

但等等…如果稍后需要运行某些代码呢?

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e36a2abf76947f9dea2e8540dd236a83.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/594addbb57eed58a4b999a914ed1d7c3.png

本文展示了在本文中风格化前后 Polars 表格的示例。图片由作者提供。

这意味着我们必须运行 Pandas,这可能会导致速度大幅降低。另一个选择是在风格化后,将表格转换回 Polars。然后,如果我们想对结果进行风格化,必须重复相同的过程。尽管这些解决方案是可行的,但它们相当不方便。

幸运的是,有一个名为“Great Tables”的包可以直接应用于 Polars 表格。这个包允许我们在使用 Polars 库的同时创建一个看起来很棒的表格。

本文将逐步指导使用 Great Tables 包来风格化 Polars 表格。

让我们开始吧!!

导入库

从获取我们将要使用的库开始。Great Tables 包是在 MIT 许可下使用的。

importnumpyasnpimportpolarsasplimportpolars.selectorsascsimportreimportwikipediaimportpandasaspdfromgreat_tablesimportGTfromgreat_tablesimportstyle,loc

获取数据

为了展示本文中解释的方法可以应用于现实世界的数据,我将使用来自维基百科的“各国风能”数据。

首先,让我们使用 Wikipedia 库 来检索 HTML 数据。然后,我们将使用 Pandas 读取数据,在将其转换为 Polars DataFrame 之前。维基百科的数据是在 CC BY-SA 4.0 国际许可下使用的。

如果你想尝试另一个数据集,这一步可以跳过。

wikiurl='https://en.wikipedia.org/wiki/Wind_power_by_country'tables=pd.read_html(wikiurl)df=pl.DataFrame(tables[4])df

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6e320b5cf51391e6ab31b6901d597429.png

由于行数较多,我将重点关注*Cap. (GW)*值高于 5 的国家。显示世界数据的第一行也将被删除。以下代码展示了如何过滤 Polars DataFrame。

如果您想选择其他列或使用其他值进行过滤,请随意修改以下代码。

no_list=['World']df=df.filter(pl.col('Cap. (GW)')>6)df=df.filter(~pl.col('Country').is_in(no_list))df

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9dacb4520d7a70dfa3c7e0ad8e2bf552.png


使用 Great Tables 显示 Polars DataFrame

现在 Polars 表格已经准备好了,让我们尝试使用 Great Tables 包来显示表格。

gt_df=GT(df)gt_df

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/40f9c3e5598146344870790ff545809c.png

使用 Great Tables 显示显示 Wind power generation by country 2023 数据。图片由作者提供。

接下来,让我们做一些基本的修改,比如添加标题并使*% cap. growth*列中的最大值加粗。

list_cap=list(df['% cap. growth'])max_idx=str(list_cap.index(max(list_cap)))## Get the maximum valuestr_txt='gt_df.tab_header(title="Wind power generation by country 2023").tab_style(style.text(weight="bold",color="black"),loc.body("% cap. growth",'+ max_idx + '))' tb=eval(str_txt)tb

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/111ee4799df8ceca184cc493534a002a.png

添加标题并使列中的最大值加粗。图片由作者提供。

使用 Great Tables 为 Polars DataFrame 着色

为了着色表格,我们需要从颜色调色板中创建一个颜色列表。如以下代码所示,本文将使用‘summer’调色板。还可以使用其他调色板,如‘coolwarm’或‘viridis’。

提取的颜色数量为 101,因为在下一步中,我们将把列中的 min-max 值缩放到 0–100。然后,将获得的颜色列表枚举以创建用于后续的字典。

importseabornassns colors=list(sns.color_palette(palette='summer_r',n_colors=101).as_hex())dict_colors=dict(enumerate(colors))

在下一步中,我们将对*% cap. growth*列中的值进行缩放。最小值为 0,最大值为 100。之后,使用颜色字典将颜色代码分配给每个缩放值。

n_cap=max(list_cap)-min(list_cap)percentage_cap=[int((i-min(list_cap))*100/n_cap)foriinlist_cap]colors_cap=[dict_colors.get(p)forpinpercentage_cap]

接下来是着色过程,for 循环函数将被应用以创建多个文本代码。每个代码用于根据颜色字典为每一行分配颜色。之后,所有创建的文本将合并为一个文本代码以运行。

http://www.cnnetsun.cn/news/191750.html

相关文章:

  • Topit窗口管理工具:Mac多任务效率革命,告别窗口遮挡烦恼
  • springboot和vue框架的武汉周边农家乐信息管理系统 _9l3k5i4b vue
  • 终极指南:RPG Maker MV资源解密工具完整使用教程
  • Arduino Nano中ATmega328P的PWM输出配置实战案例
  • DeepSeek V3.2 技术解读:一次不靠“堆参数”的模型升级
  • Babel中实现ES6函数扩展的深度剖析
  • 驱动开发中WinDbg分析DMP蓝屏文件的完整指南
  • Flutter AR 开发:打造厘米级精度的室内导航应用
  • Flutter 与 TensorFlow Lite:在手机上实时运行 YOLOv8 目标检测
  • sprintf 和 printf
  • 毕业季必看!9个AI写论文神器,1天生成25000字含真实参考文献
  • 【国产 OS 顶流实战】KylinOS V10 等保 2.0 三级合规 + MES 系统国产化迁移全案
  • Java基于springboot+vue的毕业生离校管理系统的设计与实现
  • 【毕业设计】基于springboot的旧物回收商城系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • OpenMV中HOG特征提取全面讲解
  • 8个AI论文生成平台测评,降重与写作功能深度解析
  • 8个AI论文改写工具评测,降重与写作功能全面分析
  • Elasticsearch基本用法项目应用:分页与高亮处理
  • 基于proteus的4位数码管动态扫描实战案例
  • 全面讲解ESP32开发核心外设:GPIO控制基础教学
  • PaperzzAI PPT:别再熬夜做PPT了,让AI给你“一键生成高光时刻”——不是模板搬运工,是你的视觉导演+内容编剧
  • 图解说明Vitis使用教程:适合初学者的界面功能解析
  • 具身智能重构体验!CES Asia 2026:消费电子从“工具”变身“主动伙伴”
  • STM32-时钟树编程
  • Packet Tracer使用教程:OSPF基础配置图解说明
  • 批量部署USB转串口驱动的企业级Windows策略应用
  • 赋能成长型企业:SAP Business One与奥维奥的数字化共赢之道
  • 一文说清同步整流buck电路图及其工作原理
  • Packet Tracer下载步骤详解:适合初学者的系统学习
  • 2025年AI论文写作平台精选,集成LaTeX支持与智能格式检查