Penerangan Masalah:
Apabila cuba untuk menambahkan kamus ke objek DataFrame, ralat "objek 'DataFrame' tidak mempunyai atribut 'tambah'" ialah dihadapi. Walaupun jangkaan bahawa DataFrame mempunyai kaedah "tambah", ralat itu berterusan.
Sampel Kod:
df = pd.DataFrame(df).append(new_row, ignore_index=True)
Sebab Di Sebalik Ralat:
Setakat panda versi 2.0, kaedah tambah telah dialih keluar. Ia telah digantikan dengan kaedah concat untuk kebanyakan kes penggunaan.
Pendekatan Alternatif Menggunakan Concat:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Pendekatan Alternatif Menggunakan Loc (untuk RangeIndex Sahaja):
Jika indeks DataFrame ialah RangeIndex, kaedah loc boleh digunakan.
df.loc[len(df)] = new_row
Mengapa Lampiran Dialih Keluar:
Pengalihan keluar tambahan telah digesa oleh penyalahgunaan kaedah yang kerap oleh yang baru pengguna panda. Tidak seperti kaedah tambah dalam senarai Python, lampiran panda tidak mengubah suai DataFrame sedia ada; sebaliknya, ia mencipta DataFrame baharu, mengakibatkan operasi tidak cekap apabila dilakukan berulang kali.
Amalan Terbaik untuk Sisipan Berulang:
Jika berbilang sisipan diperlukan, ia harus dikumpulkan dalam senarai dan ditukar kepada DataFrame pada penghujungnya, yang kemudiannya boleh digabungkan dengan yang asal Bingkai Data:
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 Mengapa Pandas Melemparkan Objek ''DataFrame' Tiada Atribut 'tambah'' Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!