首页 >后端开发 >Python教程 >如何修复 Pandas 中的'AttributeError:'DataFrame'对象没有属性'append'”?

如何修复 Pandas 中的'AttributeError:'DataFrame'对象没有属性'append'”?

Linda Hamilton
Linda Hamilton原创
2024-12-25 16:30:13135浏览

How to Fix the

AttributeError: 'DataFrame' 对象缺少 'Append' 方法

当尝试将字典合并到 DataFrame 时,您可能会遇到“ AttributeError:“DataFrame”对象没有属性“append””错误。虽然 DataFrame 确实拥有“append”方法,但它在 pandas 2.0 中被消除了。

解决方案:

要纠正此问题,请使用“concat”方法作为替换:

df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)

或者,如果您的 DataFrame 索引是 RangeIndex,您可以使用“loc”方法:

df.loc[len(df)] = new_row # Only applicable with RangeIndex

删除的理由:

删除“append”方法的动机是其在重复插入场景中效率低下。与就地操作的 Python 的“list.append”函数不同,pandas 的“append”方法构造一个新的 DataFrame。这种差异导致 pandas 的“追加”时间复杂度为 O(n),效率低下。

替代方法:

如果需要重复添加项目,避免多次使用“append”或“concat”。相反,在列表中累积新行,并在循环完成后将其转换为 DataFrame。随后,将扩展的 DataFrame 连接到原始 DataFrame。这种方法可确保最佳性能。

例如:

lst = []

for new_row in items_generation_logic:
    lst.append(new_row)

# Create extension
df_extended = pd.DataFrame(lst, columns=['A', 'B', 'C'])

# Concatenate to original
out = pd.concat([df, df_extended])

以上是如何修复 Pandas 中的'AttributeError:'DataFrame'对象没有属性'append'”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn