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

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

Linda Hamilton
发布: 2024-12-03 19:21:11
原创
708 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板