問題描述:
嘗試附加時字典到Data物件時,遇到錯誤「'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中文網其他相關文章!