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

Pandas代码报错AttributeError:DataFrame无append属性,求适配方案

解决Pandas中append方法移除后的替代方案

问题根源

Pandas 2.0及以上版本已移除DataFrame.append()方法,这是你触发AttributeError: 'DataFrame' object has no attribute 'append'的原因。你之前尝试用pd.concat但用法错误——concat需要接收DataFrame/Series的可迭代集合,而非单个标量值。

正确改写方式

方式1:逐行用pd.concat替代append

先确保repHolder初始化为结构匹配的空DataFrame(指定列名避免对齐问题),再每次创建单行DataFrame后用concat合并:

# 初始化空DataFrame,提前定义列名(根据你的数据调整)
repHolder = pd.DataFrame(columns=['author_name', 'gottem', 'created_utc'])

# 原逻辑改写
repTab = pd.DataFrame([[reply.author.name, gottem, reply.created_utc]], columns=repHolder.columns)
repHolder = pd.concat([repHolder, repTab], ignore_index=True)
  • ignore_index=True会重置合并后的索引,避免原索引重复或混乱。
  • 指定columns确保新行和原DataFrame列对齐,防止列顺序错乱。

方式2:批量收集数据后一次性生成(更高效)

如果是在循环中添加数据,推荐先把所有行数据收集到列表,最后一次性生成DataFrame,比逐次concat性能更好:

# 初始化列表存储所有行数据
data_rows = []

# 循环过程中收集数据(示例)
# for ...:
data_rows.append([reply.author.name, gottem, reply.created_utc])

# 循环结束后生成最终DataFrame
repHolder = pd.DataFrame(data_rows, columns=['author_name', 'gottem', 'created_utc'])

为什么你的修改会报错

你之前的代码pd.concat((reply.author.name, gottem, reply.created_utc))直接传入了三个标量值,而pd.concat要求传入的是DataFrame、Series或者这些对象的列表/元组,无法识别单个标量,因此触发新错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:50:08