Rumah > Artikel > pembangunan bahagian belakang > Apa yang Menyebabkan Ralat \'ValueError: tidak boleh mengindeks semula daripada paksi pendua\' dalam Perpustakaan Pandas Python dan Bagaimana untuk Membetulkannya?
Memahami "ValueError: tidak boleh mengindeks semula daripada paksi pendua"
Ralat "ValueError: tidak boleh mengindeks semula daripada paksi pendua" dalam Panda Python perpustakaan menandakan operasi pengindeksan yang menemui nilai pendua pada paksi. Untuk menangani perkara ini, fahami konsep paksi dalam Panda dahulu:
Punca Ralat
Ralat ini timbul apabila anda cuba menetapkan nilai atau mencipta baris baharu /column (paksi) dengan nama yang telah wujud dalam indeks/lajur semasa DataFrame. Pandas mentafsirkan ini sebagai operasi pengindeksan semula, yang memerlukan pendua yang serasi di sepanjang paksi yang disasarkan. Walau bagaimanapun, jika pendua tersebut wujud, operasi gagal, menimbulkan ralat "ValueError: tidak boleh mengindeks semula daripada paksi pendua".
Contoh
Pertimbangkan DataFrame berikut:
<code class="python">import pandas as pd data = { "Name": ["Alice", "Bob", "Alice"], "Age": [22, 25, 28] } df = pd.DataFrame(data) # Attempting to set a row with a duplicate name (Alice) df.loc["Alice"] = [30, 32]</code>
Tindakan ini membawa kepada ralat "ValueError: tidak boleh mengindeks semula daripada paksi pendua" kerana sudah ada baris dengan indeks "Alice" dalam DataFrame.
Menyelesaikan Ralat
Untuk menyelesaikan ralat ini, pastikan nama yang digunakan untuk mengindeks/menetapkan baris/lajur baharu tidak bercanggah dengan nama sedia ada. Anda boleh menyemak indeks pendua atau nama lajur menggunakan kaedah df.index.is_unique atau df.columns.is_unique, masing-masing.
Pendekatan Alternatif
Jika anda perlu tulis ganti nilai sedia ada untuk indeks yang mempunyai pendua, anda boleh menggunakan kaedah at:
<code class="python">df.at["Alice", "Age"] = 33</code>
Pendekatan ini mengemas kini nilai lajur "Umur" untuk baris pertama dengan indeks "Alice" tanpa menaikkan ralat.
Atas ialah kandungan terperinci Apa yang Menyebabkan Ralat \'ValueError: tidak boleh mengindeks semula daripada paksi pendua\' dalam Perpustakaan Pandas Python dan Bagaimana untuk Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!