Ralat: Objek 'DataFrame' Tiada Atribut 'tambah'
Apabila cuba menambah kamus pada objek DataFrame, pengguna mungkin menghadapi mesej ralat "AttributeError: objek 'DataFrame' tidak mempunyai atribut 'tambah'." Walaupun DataFrame sebelum ini dilengkapi dengan kaedah tambah, ia telah dialih keluar dalam panda versi 2.0.
Penyelesaian
Untuk menambah data pada DataFrame, gunakan kaedah concat:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Alternatif Penyelesaian
Jika indeks ialah RangeIndex, atribut loc juga boleh digunakan:
df.loc[len(df)] = new_row # Note: Only use with a RangeIndex!
Mengapa Perubahan?
Kaedah tambah telah dialih keluar kerana ia merupakan operasi yang tidak cekap, terutamanya apabila diulang. Tidak seperti list.append, yang beroperasi di tempatnya, lampiran DataFrame mencipta DataFrame baharu. Ini menjadikan operasi sisipan berulang kuadratik dalam kerumitan masa.
Amalan Terbaik untuk Sisipan Berulang
Daripada menggunakan tambah atau concat berulang kali, kumpulkan item baharu ke dalam senarai dan tukar mereka ke DataFrame pada penghujung gelung. Kemudian, gabungkan DataFrame baharu kepada yang asal.
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 Mengapakah `DataFrame.append` Ditamatkan dan Bagaimana Saya Menambah Baris pada Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!