Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan \"ValueError: tidak boleh mengindeks semula daripada paksi pendua\" dalam Pandas?

Bagaimana untuk Menyelesaikan \"ValueError: tidak boleh mengindeks semula daripada paksi pendua\" dalam Pandas?

Patricia Arquette
Patricia Arquetteasal
2024-10-23 19:01:02653semak imbas

How to Resolve

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

Dalam Panda, pengindeksan semula merujuk kepada operasi menukar label baris atau lajur daripada DataFrame. Apabila operasi indeks semula dicuba dan paksi pendua ditemui, ralat "ValueError: tidak boleh indeks semula daripada paksi pendua" dibangkitkan.

Penjelasan

Ralat ini biasanya berlaku apabila anda menetapkan baris atau lajur baharu kepada DataFrame yang indeksnya (label baris) atau lajur (label lajur) mengandungi nilai pendua.

Dalam konteks soalan anda, anda menetapkan baris baharu bernama 'sums ' ke affinity_matrix DataFrame. Walau bagaimanapun, ralat menunjukkan bahawa affinity_matrix mungkin mempunyai nilai pendua dalam lajurnya. Ini berkemungkinan punca isu.

Contoh

Pertimbangkan DataFrame berikut dengan baris label rentetan dan lajur label integer:

import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], index=["a", "b", "c"], columns=[1, 2, 2])

Dalam DataFrame ini, lajur 2 muncul dua kali. Jika kami cuba menetapkan baris baharu bernama 'jumlah' dengan menjumlahkan nilai dalam setiap lajur, kami akan menghadapi ralat yang sama:

df.loc['sum'] = df.sum(axis=0)
ValueError: cannot reindex from a duplicate axis

Ralat ini berlaku kerana DataFrame sudah mempunyai lajur berlabel '2,' dan cuba mengindeks semula daripadanya akan mencipta tugasan yang tidak jelas.

Menyelesaikan Isu

Untuk menyelesaikan isu ini, anda perlu mengesahkan bahawa indeks atau label lajur DataFrame anda tidak mengandungi nilai pendua. Jika ya, anda boleh sama ada mengalih keluar nilai pendua atau melabelkannya semula secara unik.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \"ValueError: tidak boleh mengindeks semula daripada paksi pendua\" dalam Pandas?. 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