首頁 >後端開發 >Python教學 >如何修復 Pandas 中的'AttributeError:'DataFrame'物件沒有屬性'append'”?

如何修復 Pandas 中的'AttributeError:'DataFrame'物件沒有屬性'append'”?

Linda Hamilton
Linda Hamilton原創
2024-12-25 16:30:13135瀏覽

How to Fix the

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

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