AttributeError: 'DataFrame' 对象缺少 'Append' 方法
当尝试将字典合并到 DataFrame 时,您可能会遇到“ AttributeError:“DataFrame”对象没有属性“append””错误。虽然 DataFrame 确实拥有“append”方法,但它在 pandas 2.0 中被消除了。
解决方案:
要纠正此问题,请使用“concat”方法作为替换:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
或者,如果您的 DataFrame 索引是 RangeIndex,您可以使用“loc”方法:
df.loc[len(df)] = new_row # Only applicable with RangeIndex
删除的理由:
删除“append”方法的动机是其在重复插入场景中效率低下。与就地操作的 Python 的“list.append”函数不同,pandas 的“append”方法构造一个新的 DataFrame。这种差异导致 pandas 的“追加”时间复杂度为 O(n),效率低下。
替代方法:
如果需要重复添加项目,避免多次使用“append”或“concat”。相反,在列表中累积新行,并在循环完成后将其转换为 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])
以上是如何修复 Pandas 中的'AttributeError:'DataFrame'对象没有属性'append'”?的详细内容。更多信息请关注PHP中文网其他相关文章!