首頁 >後端開發 >Python教學 >如何替換 Pandas 已棄用的'append”方法以將行添加到 DataFrame?

如何替換 Pandas 已棄用的'append”方法以將行添加到 DataFrame?

Linda Hamilton
Linda Hamilton原創
2024-12-03 19:21:11712瀏覽

How to Replace Pandas' Deprecated `append` Method for Adding Rows to a DataFrame?

錯誤「DataFrame'物件沒有屬性'append'」:使用'concat'代替

在pandas中,'append'方法從2.0 版開始已被刪除並被「concat」取代。這意味著您不能再使用 DataFrame.append() 將字典作為新行新增到 DataFrame 中。要解決此錯誤並實現所需的功能,您應該使用“concat”。

使用「concat」

將字典作為新行附加到使用「concat」的DataFrame,請按照以下步驟操作:

  1. 將字典轉換為具有一行的DataFrame:

    new_row_df = pd.DataFrame([new_row])
  2. 將新行 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn