Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `DataFrame.append` Ditamatkan dan Bagaimana Saya Menambah Baris pada Pandas DataFrame?

Mengapakah `DataFrame.append` Ditamatkan dan Bagaimana Saya Menambah Baris pada Pandas DataFrame?

DDD
DDDasal
2024-12-05 21:38:15829semak imbas

Why is `DataFrame.append` Deprecated and How Do I Add Rows to a Pandas DataFrame?

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!

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