当前位置: 首页 > 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.gsyq.cn/news/138165.html

相关文章:

  • LangFlow前端架构分析:React + Dagre-D3技术栈探秘
  • LangFlow网络安全态势感知系统雏形
  • Redis常见面试
  • OpenCVSharp:透视变换
  • GeoJSON.io 免费在线地理编辑器:零基础快速上手终极教程
  • LangFlow情感分析仪表盘构建教程
  • 【重磅开源】让 Claude/GitHub Copilot 秒变你的 M365 私人助理!
  • 利用Wireshark深入理解ModbusTCP报文格式说明
  • 基于Java+大数据+SSM基于Hadoop的宁波旅游推荐周边商城实现与设计(源码+LW+调试文档+讲解等)/宁波旅游攻略/宁波旅游景点/宁波周边游/宁波商城推荐/宁波购物商城/旅游推荐系统
  • Mac窗口管理终极利器:Topit让多任务处理效率翻倍 [特殊字符]
  • 嵌入式图像转换工具终极使用指南
  • Topit窗口置顶工具:重新定义macOS多任务工作流的终极解决方案
  • 聚焦江西过碳酸钠生产厂名单盘点:环保助剂领域的中坚力量 - 品牌2026
  • LangFlow单元测试生成器提升开发效率
  • 复杂糖脂:细胞识别与信号传导的关键介质 CAS号: 851608-39-4
  • RS485半双工控制技巧:项目应用说明
  • 零基础也能懂:Packet Tracer模拟器使用图解说明
  • python情感分类系统 深度学习 细粒度情感分类预测 Flask框架 PaddleHub 计算机 数据集OCEMOTION 毕业设计(建议收藏)
  • 2025年主流音频分离模型排行榜:从速度到音质的全面抉择指南
  • AI工具测评实战:从功能到成本全解析
  • LangFlow构建智能问答机器人全流程演示
  • 电源噪声导致STLink识别失败?电源完整性深度解析
  • ESP32 Arduino环境搭建:Soft-AP配置完整示例
  • 使用HID进行固件升级(DFU模拟):创新方案实战
  • 基于python旅游景点推荐系统 大数据技术 旅游数据分析+可视化 Django框架 scrapy爬虫 vue前端框架 源码+文档
  • ModbusSlave使用教程:小白指南之串口通信设置
  • 图解说明Keil5在工业控制系统的安装流程
  • 102302106陈昭颖食鲜配智厨:数据采集项目实践总结
  • 深入理解 Java 获取 Class 对象的四种方式及类加载机制
  • MySQL死锁排查指南