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

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

DDD
DDD原创
2024-12-05 21:38:15848浏览

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