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

如何用for循环为多个DataFrame新增eventdate列?

解决循环给多个DataFrame添加列的问题

错误原因

你写的代码df+str(i)['eventdate'] = "2021-09-15"是语法错误,因为df+str(i)是字符串拼接操作,Python不允许给运算符的结果赋值,因此触发SyntaxError: cannot assign to operator,和df是否定义无关。

正确解决方法

方法1:将DataFrames存入列表(推荐)

把所有目标DataFrame放进一个列表,直接遍历列表操作,这是最规范的方式:

# 先把所有df存入列表
dfs = [df0, df1, df2, df3, df4, df5, df6, df7, df8, df9]
# 循环给每个df添加列
for df in dfs:
    df['eventdate'] = "2021-09-15"

由于DataFrame是可变对象,列表中的元素指向原DataFrame,修改后原df0~df9都会同步更新。

方法2:通过全局变量字典访问(临时处理用)

如果不想调整现有变量结构,可通过globals()获取全局命名空间中的DataFrame变量:

for i in range(10):
    # 拼接出目标df的变量名
    df_name = f"df{i}"
    # 从全局变量中获取df对象并添加列
    globals()[df_name]['eventdate'] = "2021-09-15"

这种方式可读性差,不推荐在正式项目中使用,仅适合临时快速处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:20:30