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

如何为已有数据的DataFrame同时添加值不同的多列?

当然可以一次性添加这两列!完全不用逐个操作,pandas提供了几种通用又高效的方法来批量创建新列,我给你整理了最常用的几种:

方法1:使用assign()方法(推荐,灵活且安全)

assign()是我个人最常用的方式,它可以一次性定义多个新列,并且返回一个包含新列的新DataFrame(不会修改原始的df,如果你想覆盖原数据,直接重新赋值就行)。代码示例:

# 生成带新列的新DataFrame,原df保持不变
new_df = df.assign(Subject="F1", Slide="1A")

# 如果需要直接更新原df,就这么写
df = df.assign(Subject="F1", Slide="1A")

这个方法最大的优势是支持链式操作——比如你可以紧接着对新列做过滤、转换等操作,非常适合数据处理流水线。

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

如果你想直接在原始DataFrame上添加列,不用创建新对象,可以用简洁的广播赋值:

# pandas会自动把标量值"F1"和"1A"广播到整个列
df.loc[:, ['Subject', 'Slide']] = ["F1", "1A"]

或者也可以用字典来明确指定列和对应的值,这种方式在需要动态生成列值时更清晰:

import pandas as pd
df[['Subject', 'Slide']] = pd.DataFrame({
    'Subject': ["F1"] * len(df),
    'Slide': ["1A"] * len(df)
})

额外提示:适配动态列值的场景

上面的例子是固定值的情况,但这些方法同样适用于需要根据现有列计算新列的场景。比如如果Subject的值需要基于df里的某列生成,用assign()可以这么写:

df = df.assign(Subject=lambda x: x['ID'].str[:2], Slide="1A")

这种写法非常通用,不管是固定值还是动态计算的列,都能统一处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:46:07