首页 > 后端开发 > Python教程 > 为什么'DataFrame.append”已被弃用以及如何将行添加到 Pandas DataFrame?

为什么'DataFrame.append”已被弃用以及如何将行添加到 Pandas DataFrame?

DDD
发布: 2024-12-05 21:38:15
原创
866 人浏览过

Why is `DataFrame.append` Deprecated and How Do I Add Rows to a Pandas DataFrame?

错误:'DataFrame'对象没有属性'append'

尝试向 DataFrame 对象添加字典时,用户可能会遇到错误消息“AttributeError:‘DataFrame’对象没有属性‘append’。”虽然DataFrame之前配备了append方法,但在pandas 2.0版本中被删除了。

解决方案

要将数据追加到DataFrame,请改用concat方法:

df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
登录后复制

替代方案解决方案

如果索引是RangeIndex,也可以使用loc属性:

df.loc[len(df)] = new_row # Note: Only use with a RangeIndex!
登录后复制

为什么要改变?

删除了追加方法,因为它是一种低效操作,尤其是在重复时。与就地操作的 list.append 不同,DataFrame 的追加创建了一个新的 DataFrame。这使得重复插入操作的时间复杂度成二次方。

重复插入的最佳实践

不要重复使用追加或连接,而是将新项目收集到列表中并转换它们在循环结束时保存到 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])
登录后复制

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

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