You need to enable JavaScript to run this app. Pandas DataFrame循环append不生效且计数缺失,如何正确追加数据?
优惠活动
大模型
产品
解决方案
定价
更多

Pandas DataFrame循环append不生效且计数缺失,如何正确追加数据?

问题解决:Pandas DataFrame循环追加数据失败的修正方案

原有代码的核心问题

  • 变量定义错误:代码中lst = [no, lst]存在循环引用,首次运行时lst还未完成赋值就被调用,且你实际要存入的是tt变量的值,此处属于笔误
  • 追加格式错误:直接传入一维列表给append方法会将列表内的每个元素拆分为单独行,无法生成你需要的「一行两列」的结构
  • API废弃问题:Pandas 2.0及以上版本已经完全移除了DataFrame.append方法,旧版本也早已将该方法标记为废弃,官方推荐使用pd.concat完成拼接操作

最优实现(无循环,性能最高)

Pandas不推荐循环逐行追加数据,会产生大量额外开销,建议先把所有数据整理为列表后一次性转为DataFrame:

import pandas as pd

# 直接生成所有行数据
data = [[i, "ab"] for i in range(1, 10)]
# 指定列名生成DataFrame
df = pd.DataFrame(data, columns=["no", "tt"])
# 如果需要行索引从1开始可加下面这行
df.index = df.index + 1

必须使用循环的场景(如逐行处理复杂逻辑)

使用官方推荐的pd.concat完成逐行拼接:

import pandas as pd

# 初始化时就指定列名
df = pd.DataFrame(columns=["no", "tt"])

for i in range(1, 10):
    no = i
    tt = "ab"
    # 生成单行DataFrame后拼接
    single_row = pd.DataFrame([[no, tt]], columns=["no", "tt"])
    df = pd.concat([df, single_row], ignore_index=True)
# 调整行索引从1开始
df.index = df.index + 1

运行后输出结果和你预期一致:

no  tt
1   1  ab
2   2  ab
3   3  ab
4   4  ab
5   5  ab
6   6  ab
7   7  ab
8   8  ab
9   9  ab

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 23:45:02