错误“DataFrame'对象没有属性'append'”:使用'concat'代替
在pandas中,'append'方法从 2.0 版开始已被删除并被“concat”取代。这意味着您不能再使用 DataFrame.append() 将字典作为新行添加到 DataFrame 中。要解决此错误并实现所需的功能,您应该使用“concat”。
使用“concat”
将字典作为新行附加到使用“concat”的 DataFrame,请按照以下步骤操作:
将字典转换为具有一行的 DataFrame:
new_row_df = pd.DataFrame([new_row])
将新行 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中文网其他相关文章!