Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apa yang Menyebabkan Ralat Pandas \"ValueError: tidak boleh mengindeks semula daripada paksi pendua\"?

Apa yang Menyebabkan Ralat Pandas \"ValueError: tidak boleh mengindeks semula daripada paksi pendua\"?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-23 16:26:02440semak imbas

What Causes the Pandas Error

Memahami "ValueError: tidak boleh mengindeks semula daripada paksi pendua"

Dalam pustaka Pandas Python, mesej ralat ini menunjukkan bahawa operasi tidak boleh dilakukan kerana struktur data mengandungi nilai pendua dalam paksi yang dirujuk.

Punca Ralat

Secara khusus, ralat berlaku apabila cuba mengindeks semula DataFrame atau Siri dengan menetapkan baris atau lajur baharu menggunakan indeks yang telah wujud. Pengindeksan semula melibatkan penukaran label indeks dan jika label pendua hadir, menjadi mustahil untuk memetakan operasi secara unik kepada data yang sepadan.

Senario Contoh

Untuk menggambarkan perkara ini ralat, pertimbangkan Pandas DataFrame dengan nama lajur pendua. Berikut ialah coretan Python yang menunjukkan cara ini boleh berlaku:

<code class="python">import pandas as pd

df = pd.DataFrame({
    "ID": [1, 2, 3],
    "Name": ["Alice", "Bob", "Charlie"],
    "Score": [90, 80, 70],
    "Age": [25, 26, 27]
})

df["Score"] = df["Score"] * 2
df["Age"] = df["Age"] + 1

# Attempt to create a duplicate column
df["Score"] = df["Score"] * 1.1</code>

Apabila anda melaksanakan coretan ini, anda akan menghadapi ralat berikut:

ValueError: cannot reindex from a duplicate axis

Ini kerana DataFrame sudah mempunyai lajur bernama "Skor," dan anda cuba memberikan nilai baharu padanya menggunakan nama yang sama. Lajur pendua menghalang Panda daripada mengindeks semula lajur dengan jayanya.

Penyelesaian

Untuk menyelesaikan ralat ini, anda mesti memastikan bahawa nilai indeks yang digunakan untuk pengindeksan semula adalah unik. Dalam kes penugasan kepada baris atau lajur sedia ada, ini bermakna mengelakkan label pendua. Jika nilai pendua diperkenalkan secara tidak sengaja, anda boleh menyemak indeks menggunakan kaedah .duplicated() dan mengalih keluar pendua dengan sewajarnya.

Atas ialah kandungan terperinci Apa yang Menyebabkan Ralat Pandas \"ValueError: tidak boleh mengindeks semula daripada paksi pendua\"?. 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