Python中如何遍历pandas DataFrame列逐列追加单个值
问题原因
你的示例代码存在三处核心问题:
- 初始DataFrame定义错误:
df: ['a', 'b', 'c']属于类型标注语法,没有实际生成带指定列名的空DataFrame对象 - 追加逻辑错误:循环内每次仅传入单个列的键值对调用追加方法,会每次新增一行,该行仅当前遍历的列值为5,其余列自动填充NaN,最终得到3行带大量缺失值的结果,不符合预期
- 方法弃用问题:
DataFrame.append自pandas 1.4版本起标记为弃用,2.0及以上版本已正式移除,无法正常运行
正确实现(满足for循环遍历列的要求)
完整可运行代码
import pandas as pd # 初始化列名为a、b、c的空DataFrame df = pd.DataFrame(columns=["a", "b", "c"]) # 遍历所有列,生成待追加的行数据 new_row = {} for column in df.columns: new_row[column] = 5 # 追加行到原DataFrame(兼容所有pandas版本的写法) df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
输出结果
a b c 0 5 5 5
可选简化写法
如果没有强制要求使用for循环,可以用更简洁的方式实现相同效果:
# 直接在末尾新增一行,所有列赋值为5 df.loc[len(df)] = [5] * df.shape[1]
内容的提问来源于stack exchange,提问作者almahfudhi
相关产品推荐
相关产品推荐

