Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menetapkan Nilai dengan Cekap dalam Sel DataFrame Pandas mengikut Indeks?

Bagaimana untuk Menetapkan Nilai dengan Cekap dalam Sel DataFrame Pandas mengikut Indeks?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 18:02:12686semak imbas

How to Efficiently Set Values in Pandas DataFrame Cells by Index?

Menetapkan Nilai dalam Sel Pandas DataFrame mengikut Indeks

Untuk menetapkan nilai sel tertentu dalam Pandas DataFrame berdasarkan indeksnya, pertimbangkan perkara berikut :

Menggunakan df.set_value(index, column, value)

df.set_value() membenarkan anda memberikan nilai secara langsung kepada sel menggunakan indeksnya. Walau bagaimanapun, ambil perhatian bahawa kaedah ini dijadualkan untuk penamatan.

# Correct way:
df.set_value('C', 'x', 10)

Menggunakan df.at[index, column] = value

Alternatif pilihan ialah menggunakan df .at[] untuk mengemas kini nilai sel secara langsung. Kaedah ini lebih cekap dan menyediakan sintaks yang lebih ringkas.

df.at['C', 'x'] = 10

Menggunakan Pengindeksan Berantai

Awas: Walaupun ia mungkin kelihatan intuitif untuk gunakan pengindeksan berantai untuk menetapkan nilai sel (cth., df.xs('C')['x'] = 10), kaedah ini hanya mengubah suai salinan baris atau lajur. Untuk mengubah suai DataFrame asal secara langsung, gunakan sama ada df.set_value() atau df.at[].

Mengapa Pengindeksan Berantai Gagal

Pengindeksan berantai (mis., df. xs('C')['x'] = 10) mencipta objek DataFrame baharu dengan rujukan kepada yang asal data. Tugasan yang dibuat pada objek baharu ini tidak disebarkan kepada DataFrame asal.

Prestasi

Tanda aras menunjukkan bahawa df.set_value() ialah pilihan terpantas, diikuti dengan df' x' = 10 dan df.at['C', 'x'] = 10. Walau bagaimanapun, perbezaan prestasi boleh berbeza-beza bergantung kepada Saiz dan kerumitan DataFrame.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Nilai dengan Cekap dalam Sel DataFrame Pandas mengikut Indeks?. 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