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

如何高效地将字典数据批量添加到Pandas DataFrame的所有行?

更高效地给Pandas DataFrame批量添加字典列

嘿,这个问题我太熟了!你原来的循环方法虽然能实现需求,但确实有更简洁高效的向量化操作方式,不用挨个遍历字典的键值对——尤其是当你的DataFrame行数很多或者字典里的键值对数量不少时,这些方法的优势会更明显。

给你分享几个常用的高效方法:

方法1:使用df.assign()(最简洁)

assign()方法可以直接接受字典作为参数(通过**解包),一行代码就能完成所有新列的添加,而且默认返回一个新的DataFrame(不想修改原数据的话特别友好):

import pandas as pd
df = pd.DataFrame({'age' : [1, 2, 3],'name' : ['Foo', 'Bar', 'Barbie']})
d = {"blah":42,"blah-blah":"bar"}

# 一行搞定批量添加
df = df.assign(**d)

方法2:使用pd.concat()

把字典转换成和原DataFrame同索引的小DataFrame,然后按列拼接,逻辑非常直观:

# 将字典转为匹配原df索引的DataFrame,再拼接
df = pd.concat([df, pd.DataFrame(d, index=df.index)], axis=1)

方法3:直接批量赋值(修改原DataFrame)

如果你想直接在原DataFrame上修改,可以通过loc批量指定列并赋值,Pandas会自动把字典里的标量值广播到所有行:

# 直接给原df添加新列并赋值
df.loc[:, d.keys()] = pd.Series(d)

这几种方法都避免了循环操作,利用Pandas的向量化特性,执行效率比遍历字典要高很多,而且代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:30:44