首页 >后端开发 >Python教程 >如何替换 Pandas 已弃用的'append”方法以将行添加到 DataFrame?

如何替换 Pandas 已弃用的'append”方法以将行添加到 DataFrame?

Linda Hamilton
Linda Hamilton原创
2024-12-03 19:21:11712浏览

How to Replace Pandas' Deprecated `append` Method for Adding Rows to a DataFrame?

错误“DataFrame'对象没有属性'append'”:使用'concat'代替

在pandas中,'append'方法从 2.0 版开始已被删除并被“concat”取代。这意味着您不能再使用 DataFrame.append() 将字典作为新行添加到 DataFrame 中。要解决此错误并实现所需的功能,您应该使用“concat”。

使用“concat”

将字典作为新行附加到使用“concat”的 DataFrame,请按照以下步骤操作:

  1. 将字典转换为具有一行的 DataFrame:

    new_row_df = pd.DataFrame([new_row])
  2. 将新行 DataFrame 与原始 DataFrame 连接:

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

替代方案:使用“loc”(与注意)

另一个选项,但有一些限制,是使用 'loc':

df.loc[len(df)] = new_row

但是,请注意,这仅在新索引尚不存在时才有效在 DataFrame 中(通常是索引为 RangeIndex 的情况)。

为什么是“append”删除了?

“append”方法已被删除,因为它对于重复插入效率低下。虽然“list.append”每一步的复杂度为 O(1),但“DataFrame.append”的复杂度为 O(n),这使得循环速度变慢。此外,它为每个步骤创建了一个新的 DataFrame,从而导致二次行为。

重复插入的最佳实践

如果您需要重复将行追加到 DataFrame ,最好收集列表中的新项目,将其转换为 DataFrame,然后在循环末尾将其连接到原始 DataFrame。这种方法避免了重复追加操作的开销。

以上是如何替换 Pandas 已弃用的'append”方法以将行添加到 DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

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