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

循环拼接字符串导致DataFrame生成错误列名问题求助

问题分析与解决

你的代码有两个关键错误导致列名异常:

  1. 列名引用错误:赋值时使用df[colnames_out[i]],但colnames_out是拼接好的完整字符串(比如"new col One"),colnames_out[i]会取该字符串的第i个字符(i=0时取"n",i=1时取"e"),这就是生成单个字符列名的原因。应该直接用完整的colnames_out作为列名。
  2. 变量大小写错误:循环里的colnames_in[I]用了大写的I,但循环变量是小写i,这会触发NameError,需要改成小写i。

修正后的代码:

colnames_in = ['One', 'Two', 'Three', 'Four', 'Five']

for i in range(len(colnames_in)):
    colnames_out = 'new col ' + colnames_in[i]
    df[colnames_out] = df_a[colnames_in[i]] - df_b[colnames_in[i]]

另外可以用更简洁的遍历方式,避免索引相关错误:

colnames_in = ['One', 'Two', 'Three', 'Four', 'Five']

for col in colnames_in:
    df[f'new col {col}'] = df_a[col] - df_b[col]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:57:16