如何在 Polars 中高效添加多个空列(来自列表)
本文介绍在 Polars 中向现有 DataFrame 批量添加空列的标准、高效方法,重点推荐使用 pl.lit().alias() 配合 with_columns(),避免低效的 cross join 操作,兼顾性能、可读性与 Polars 原生表达风格。
本文介绍在 Polars 中向现有 DataFrame 批量添加空列的标准、高效方法,重点推荐使用 `pl.lit().alias()` 配合 `with_columns()`,避免低效的 cross join 操作,兼顾性能、可读性与 Polars 原生表达风格。
在 Polars 中,为已有 DataFrame 动态添加多个新列(尤其是空值或默认值列)是常见需求。相比 Pandas 的 assign() 或手动构造字典,Polars 提供了更函数式、惰性求值友好的方式——核心在于 利用字面量表达式(literal expressions)配合 with_columns(),而非创建临时 DataFrame 并执行 join。
最简洁、地道的实现如下:
AI Code Reviewer
AI自动审核代码
import polars as pl
df = pl.DataFrame({'a': [1, 2, 3]})
mylist = [f'col{i}' for i in range(1, 4)]
# ✅ 推荐:使用 pl.lit() + alias() + with_columns()
result = df.with_columns(
pl.lit('').alias(col) for col in mylist
)
print(result)
输出:
shape: (3, 4) ┌─────┬──────┬──────┬──────┐ │ a ┆ col1 ┆ col2 ┆ col3 │ │ --- ┆ --- ┆ --- ┆ --- │ │ i64 ┆ str ┆ str ┆ str │ ╞═════╪══════╪══════╪══════╡ │ 1 ┆ ┆ ┆ │ │ 2 ┆ ┆ ┆ │ │ 3 ┆ ┆ ┆ │ └─────┴──────┴──────┴──────┘
✅ 为什么这是“更 Polars 的方式”?
- pl.lit('') 创建一个标量字面量表达式,Polars 会自动广播(broadcast)至所有行,无需显式构造长度匹配的列表;
- with_columns() 是 Polars 原生的列扩展接口,支持表达式、Series 或字面量,语义清晰且性能优异(零拷贝优化);
- 整个操作保持惰性(lazy)兼容性,可在 LazyFrame 流程中无缝使用;
- 相比 cross join 方案,它不引入笛卡尔积逻辑、无冗余内存分配,也无需预先构造 schema 或 data 参数,代码更简短、意图更明确。
? 其他等效写法(按推荐度排序)
- 使用 map()(函数式风格,适合链式调用):
df.with_columns(map(lambda c: pl.lit('').alias(c), mylist)) - 若需不同默认值(如 None、0、False),只需替换 pl.lit() 内容:
df.with_columns( pl.lit(None).alias('nullable_col'), pl.lit(0).alias('int_col'), pl.lit(False).alias('bool_col') )
⚠️ 注意事项
- pl.lit() 的类型推断基于传入值:pl.lit('') → String, pl.lit(42) → Int64, pl.lit(3.14) → Float64。如需显式指定类型,可用 pl.lit(...).cast(pl.Utf8) 等;
- 列名必须唯一;若 mylist 中存在重复项,with_columns() 将报错;
- with_columns() 默认追加列到右侧,顺序与生成器/迭代顺序一致,符合直觉;
- 不要误用 pl.col() —— 它引用已有列,不能用于新建列。
综上,df.with_columns(pl.lit(value).alias(name) for name in names) 是 Polars 社区公认的最佳实践,兼具简洁性、性能与可维护性,应作为批量添加空列(或默认值列)的首选方案。
如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!
猜您喜欢
《我的世界》最新测试更新上线 多个野营新道具追加
2026-07-09MojangStudios工作室宣布,《我的世界》最新热修更新26.3Snapshot3上线,玩家期待已久的靠垫、一次性草床等多个新道具追加。 这次测试版本中,预定安装在2026年秋天预定的第3弹游戏中的内容新登场。首先新项目「靠垫(Cushion)」追加。靠垫是可以设置在块上的物品,玩家可以通过右击靠垫坐在上面。和骑马一样可以解除。 靠垫也可以通过排列3个同样预定在第3弹游戏下降中追加的“羊毛半...
斗罗大陆:传承主线高效刷图队搭配思路
2026-07-07斗罗大陆传承高效刷图队阵容搭配,本期为玩家们量身推荐一套高效刷图队,让魂师们轻松实现“一键速刷”,下面就来看看这套阵容的具体配置与打法思路吧。 斗罗大陆:传承主线高效刷图队搭配思路: 一、高效刷图队 搭配思路:马红俊和宁荣荣破法放大队伍元素伤害,唐三旋风锤法大范围元素伤害 主C:唐三 流派:附伤旋风 通用魂技 涅槃复苏、巨人杀手、冲锋号角、坚定风采、不动龙钟 套装魂骨:泰坦巨猿套装 通用魂骨:赤魔...
我要当老祖资源高效分配指南
2026-07-03我要当老祖资源高效分配指南:灵石优先升功法与长老,宠物等成型后再培养;勾玉每日必花仙盟捐赠、宠物秘籍、体力及前期晶矿,剩余存着买皮肤(祝融、句灵等),竞技场备三套皮肤即可。商店兑换:仙盟换紫自选,梦境优先晶矿,竞技场换金碎片,坊市紫自选+晶矿+绿古宝,宠物商店换对应蛋,混元攒4000换金自选,宝库除灵宠丹、易容丹外全换。 我要当老祖资源高效分配指南 1.灵石(核心消耗优先级:功法>长老>宠物) 获...
英特尔Arc显卡更新 修复多个游戏崩溃或显示异常问题
2026-07-03英特尔发布了Arc显卡32.0.101.8860驱动程序,这是一个WHQL版本的驱动程序。 已修复的问题 英特尔酷睿Ultra3系列处理器产品: 《Apex英雄》(DX12)游戏过程中,某些地图可能会出现闪烁的画面异常。 《夺宝奇兵:古老之圈》(DX12)启用路径追踪时,可能会发生崩溃。 《欧洲卡车模拟2》(OGL)在游戏过程中可能出现闪烁或损坏现象。 《战地风云6》(DX12)在更改图形预设方案...
讯飞听见:高效办公场景下的录音转写与文档同步
2026-06-28讯飞听见在办公场景的价值在于“转得准、理得清、用得上”,将录音秒变可检索、可编辑、可延展的结构化文档,支持实时录音边录边写、AI纪要生成、思维导图与AI写作等闭环应用。 ☞☞☞AI智能聊天,问答助手,AI智能搜索,多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 讯飞听见在办公场景中真正发挥价值,不在于“能转文字”,而在于“转得准、理得清、用得上”。它把录音这个原始信息载体,快速变成可检索、可编辑...
讯飞听见高效办公实战:从语音笔记到智能办公文档
2026-06-28讯飞听见通过“听、记、写、管”四步闭环实现办公提效。语音实时转写并结构化,支持多语种与方言,准确率近98%;自动生成会议纪要,含概要、要点、待办;AI写作延展输出模板化文档;跨设备协同统一归集至讯飞文档,支持协作与复用。 ☞☞☞AI智能聊天,问答助手,AI智能搜索,多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 讯飞听见不是简单把语音变文字,而是把日常办公中“听、记、写、管”四个动作串成一条高效...
讯飞听见文档整理功能:高效处理工作访谈与电话录音
2026-06-28讯飞听见文档整理功能聚焦工作访谈与电话录音场景,实现说话人自动区分、声纹记忆、打点纪要生成及多格式导出。它支持系统级内录与外录导入,提供语篇规整、热词优化、时间锚点待办清单,并适配PDF/Word/TXT导出及正式纪要模板。 ☞☞☞AI智能聊天,问答助手,AI智能搜索,多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 讯飞听见的文档整理功能,不是简单把录音变成文字,而是围绕工作访谈和电话录音这类高...
迷你世界如何添加人物到地图中
2026-06-24迷你世界游戏里面有很多的内容,今天给大家带来了游戏里面的添加人物到地图中方法,还有小伙伴不清楚要怎么如何添加人物到地图中,那么下面就是相关的内容,来看看吧. 迷你世界添加人物到地图中方法 玩法地图 点击添加按钮,从插件库选取插件或者制作新插件。 勾选已经完成的插件或者新建插件。 修改原版生物:适用于修改自然中会经常刷新的生物,例如:想要爆爆蛋不会自爆,就是选择这个选项。千万别让这些生物获得与方块交...
传闻:EA已开始向员工通知裁员 多个部门将受波及
2026-06-22尽管业内普遍预计多轮裁员潮即将到来,但美国艺电(EA)似乎已经率先开启了裁员进程。据行业分析师德斯廷·莱加里透露,EA的首轮裁员规模可能相对较小,但后续还会有更多裁员动作。 莱加里在社交媒体发文称,EA目前正在向受影响的员工告知裁员消息。目前尚不清楚此次裁员的具体规模,但他援引消息人士的话表示,公司旗下多个部门都将受到此次裁员的波及。 他写道:“很遗憾,我从可靠消息源获悉,EA已经启动裁员,不过首...
NVIDIA发布最新驱动610.62 修复问题稳定支持多个游戏
2026-06-18英伟达日前发布了面向自家显卡的最新GameReady驱动程序Ver.“610.62”,修复旧版的问题以及稳定支持多个游戏,建议玩家赶紧更新吧。 新驱动不仅修复了最近发布的Hotfix驱动程序Ver.“610.52”中包含的错误,还增加了解决《Apex影响》长时间游玩时偶尔出现的画面混乱问题和提升《WorldofWarcraft》游戏稳定性,并已通过WHQL认证(通过微软的兼容性测试)。 此外,还增...
