问题描述:
尝试附加时字典到 DataFrame 对象时,遇到错误“'DataFrame'对象没有属性'append'”。尽管期望 DataFrame 有一个“append”方法,但错误仍然存在。
代码示例:
df = pd.DataFrame(df).append(new_row, ignore_index=True)
错误背后的原因:
从 pandas 2.0 版本开始,append 方法已被删除。对于大多数用例,它已被 concat 方法取代。
使用 Concat 的替代方法:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
使用 Loc 的替代方法(对于仅 RangeIndex):
如果 DataFrame 的索引是RangeIndex,可以使用loc方法。
df.loc[len(df)] = new_row
为什么Append被移除:
append的移除是由于new频繁误用该方法而提示的熊猫用户。与Python列表中的append方法不同,pandas的append不会修改现有的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 会抛出''DataFrame'对象没有属性'append'”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!