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

如何在Pandas的assign函数循环中使用动态列名?

在pandas的assign操作中使用字符串作为列名的解决方法

你的代码无法运行,核心原因是df.assign()不支持直接用动态拼接的字符串作为关键字参数——Python语法不允许函数的关键字参数是动态计算的字符串。

以下是两种可行的解决方式:

  • 字典解包实现循环赋值
    把动态生成的列名和对应值存入字典,再通过**运算符解包字典作为assign的参数,同时注意重新赋值给原DataFrame(因为assign返回新对象,不会修改原数据):

    for col in df.columns:
        df = df.assign(**{'Test_' + str(col): 1})
    
  • 批量生成列(更高效)
    避免循环,直接生成包含所有新列的字典,一次性完成赋值,性能更优:

    new_columns = {f'Test_{col}': 1 for col in df.columns}
    df = df.assign(**new_columns)
    

本质上是利用Python的字典解包特性,让动态字符串可以作为assign的列名参数,绕开关键字参数必须是字面量的限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:05:34