You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Polars将DataFrame其余行除以第一行并转为百分比?

Polars实现以第一行数据为基准计算百分比

首先定义原始DataFrame:

import polars as pl

df = pl.DataFrame({
    'pme-site-paginas': [118,54,24,21,20,20,18],
    'pme-midias-novo-empresas': [348,149,67,50,47,46,39],
    'pme-site-claro-mais': [8,0,0,0,0,0,0]
})

需求说明:将第一行数据视为100%基准,其余行的每列数据除以对应列的第一行值,得到百分比结果,这和Pandas中「按第一行数据进行逐列除法计算」的场景逻辑一致。

实现方法

通过Polars的with_columns(或select)结合first()方法即可完成计算,示例代码如下:

# 计算百分比并保留两位小数
df_percent = df.with_columns(
    [(pl.col(col) / pl.col(col).first() * 100).round(2).alias(col) for col in df.columns]
)

# 输出结果
print(df_percent)

代码说明

  • pl.col(col).first():获取当前列的第一行基准值
  • pl.col(col) / pl.col(col).first() * 100:将列中每个元素除以基准值并转为百分比
  • round(2):保留两位小数,可根据需求调整位数
  • with_columns:直接在原DataFrame结构上替换列值,若想生成新DataFrame可改用select方法

内容的提问来源于stack exchange,提问作者INGl0R1AM0R1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 21:13:13