錯誤「DataFrame'物件沒有屬性'append'」:使用'concat'代替
在pandas中,'append'方法從2.0 版開始已被刪除並被「concat」取代。這意味著您不能再使用 DataFrame.append() 將字典作為新行新增到 DataFrame 中。要解決此錯誤並實現所需的功能,您應該使用“concat”。
使用「concat」
將字典作為新行附加到使用「concat」的DataFrame,請按照以下步驟操作:
將字典轉換為具有一行的DataFrame:
new_row_df = pd.DataFrame([new_row])
將新行 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中文網其他相關文章!