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中文網其他相關文章!