Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Pandas Melemparkan Objek ''DataFrame' Tiada Atribut 'tambah'' Ralat?

Mengapa Pandas Melemparkan Objek ''DataFrame' Tiada Atribut 'tambah'' Ralat?

Barbara Streisand
Barbara Streisandasal
2024-12-02 15:40:10627semak imbas

Why Does Pandas Throw a

Ralat: Objek 'DataFrame' Tiada Atribut 'Tambah'

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!

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