Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membetulkan 'AttributeError: 'DataFrame' objek tidak mempunyai atribut 'tambah'' dalam Pandas?

Bagaimana untuk Membetulkan 'AttributeError: 'DataFrame' objek tidak mempunyai atribut 'tambah'' dalam Pandas?

Linda Hamilton
Linda Hamiltonasal
2024-12-25 16:30:13135semak imbas

How to Fix the

AttributeError: Objek 'DataFrame' Kekurangan Kaedah 'Append'

Apabila cuba memasukkan kamus ke dalam DataFrame, anda mungkin menghadapi " AttributeError: Objek 'DataFrame' tidak mempunyai ralat 'tambah' atribut. Walaupun DataFrame mempunyai kaedah "tambah", ia telah dihapuskan dalam panda 2.0.

Penyelesaian:

Untuk membetulkan isu ini, gunakan kaedah "concat" sebagai penggantian:

df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)

Sebagai alternatif, jika indeks DataFrame anda ialah RangeIndex, anda boleh menggunakan kaedah "loc":

df.loc[len(df)] = new_row # Only applicable with RangeIndex

Rasional Pembuangan:

Pengalihan kaedah "tambah" didorong oleh ketidakcekapannya dalam senario sisipan berulang. Tidak seperti fungsi "list.append" Python, yang beroperasi di tempat, kaedah "tambah" panda membina DataFrame baharu. Perbezaan ini mengakibatkan kerumitan masa O(n) untuk "tambah" panda, menjadikannya tidak cekap.

Pendekatan Alternatif:

Jika anda perlu menambah berulang kali item, elakkan menggunakan "tambah" atau "concat" beberapa kali. Sebaliknya, kumpulkan baris baharu dalam senarai dan tukarkannya kepada DataFrame setelah gelung selesai. Selepas itu, gabungkan DataFrame yang dilanjutkan kepada yang asal. Pendekatan ini memastikan prestasi optimum.

Contohnya:

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])

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'AttributeError: 'DataFrame' objek tidak mempunyai atribut 'tambah'' dalam Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn