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

如何为Polars DataFrame添加新列?将值列表转为字符串列

在Polars中添加对应行的字符串列的正确方法

你当前的问题是pl.lit(english_titles)会把整个列表作为单一值传入,导致每行都重复这个列表。要让列表的每个元素对应DataFrame的每行,有以下几种简洁的实现方式:

方法1:使用pl.Series直接构造列

这是最直接的方式,将列表转换为Polars Series后添加到DataFrame中:

import polars as pl

df = pl.DataFrame({"a": [1, 2], "b": [4, 5]})
english_titles = ["ok", "meh"]

# 直接用Series创建新列
df = df.with_columns(pl.Series(name="english_title", values=english_titles))

执行后得到的结果符合预期:

┌─────┬─────┬───────────────┐
│ a   ┆ b   ┆ english_title │
│ --- ┆ --- ┆ ---           │
│ i64 ┆ i64 ┆ str           │
╞═════╪═════╪═══════════════╡
│ 1   ┆ 4   ┆ ok            │
│ 2   ┆ 5   ┆ meh           │
└─────┴─────┴───────────────┘

方法2:利用list.get配合行索引

如果需要基于现有列表动态提取对应行的值,可以结合pl.int_range生成行索引,再用list.get获取对应元素:

df = df.with_columns(
    pl.lit(english_titles).list.get(pl.int_range(0, len(df))).alias("english_title")
)

这种方法适合需要对列表做额外处理的场景,但方法1在仅需直接映射时更高效简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:47:14