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

Patricia Arquette
Lepaskan: 2024-10-23 19:01:02
asal
739 orang telah melayarinya

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])
Salin selepas log masuk

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)
Salin selepas log masuk
ValueError: cannot reindex from a duplicate axis
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan