Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membetulkan 'AttributeError: 'DataFrame' objek tidak mempunyai atribut 'tambah'' dalam Pandas?
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!