错误:“DataFrame”对象没有属性“append”
尝试将字典附加到 DataFrame 对象时,出现以下错误可能会出现:
AttributeError: 'DataFrame' 对象没有属性'append'
尽管 DataFrame 中明显存在“append”方法,但可以通过了解其最近的删除来解决此问题。
删除原因
在 pandas 2.0 中,“append”方法已被弃用并最终被删除,因为它的问题本质。用户经常尝试通过在循环中使用“append”来模仿 Python 列表行为,从而导致效率低下。 pandas 中的“append”不会修改原始 DataFrame,而是创建一个新的 DataFrame,导致重复插入的复杂度为 O(n)。
替代解决方案
To将字典附加到 DataFrame,建议使用两种替代方法:
1. Pandas Concatenation (concat)
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
此方法将原始 DataFrame 与新行组合为一个 DataFrame。
2. Pandas Loc(仅适用于 RangeIndex)
df.loc[len(df)] = new_row # only use with a RangeIndex!
此方法通过将新行设置在 DataFrame 中的下一个可用索引处来添加新行。请注意,它仅在 DataFrame 具有 RangeIndex 时有效。
有效追加多行
如果需要追加多行,请考虑以下方法:
这可确保高效追加,同时避免重复“append”或“concat”操作的开销。
以上是为什么 pandas DataFrame 抛出 AttributeError: 'DataFrame' object has no attribute 'append'?的详细内容。更多信息请关注PHP中文网其他相关文章!