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

如何在Pandas中动态添加名称可变的自定义列

解决Pandas动态迭代添加列名的问题

问题出在你使用df.assign()的方式上:assign会把你传入的参数名直接作为新列的名称,你写column_name=[0,0,0],它就会创建名为column_name的列,而不是使用变量column_name的实际值。

下面是两种可行的解决方法:

方法1:直接通过索引赋值(最直观)

这是Pandas中添加新列最常用的方式,直接用变量作为列索引赋值:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9]})

for k in range(2):
    column_name = 'new_column_' + str(k)
    df[column_name] = [0, 0, 0]

方法2:使用字典解包给assign传参

如果坚持要用assign,可以把列名和对应值做成字典,然后用**解包成关键字参数传给assign:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9]})

for k in range(2):
    column_name = 'new_column_' + str(k)
    df = df.assign(**{column_name: [0, 0, 0]})

运行任意一种方法后,你都会得到期望的结果:

A  B  C  new_column_0  new_column_1
0  1  4  7             0             0
1  2  5  8             0             0
2  3  6  9             0             0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:27:26