首頁  >  文章  >  後端開發  >  如何解決 Pandas 中的“ValueError:無法從重複軸重新索引”?

如何解決 Pandas 中的“ValueError:無法從重複軸重新索引”?

Patricia Arquette
Patricia Arquette原創
2024-10-23 19:01:02653瀏覽

How to Resolve

理解「ValueError:無法從重複的軸重新索引」

在Pandas中,重新索引是指更改行或列標籤的操作資料框的。當嘗試重新索引操作並遇到重複軸時,會引發“ValueError:無法從重複軸重新索引”錯誤。

說明

此錯誤通常當您將新行或新列指派給索引(行標籤)或列(列標籤)包含重複值的DataFrame 時,會發生這種情況。

在您的問題的上下文中,您正在分配一個名為“sums”的新行' 到affinity_matrix DataFrame。但是,該錯誤表示affinity_matrix 的欄位中可能有重複的值。這可能是問題的原因。

範例

考慮以下具有字串標籤行和整數標籤列的DataFrame:

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

在此DataFrame 中,第2 列出現兩次。如果我們嘗試透過每個列中的值求和來指派名為「sum」的新行,我們將遇到相同的錯誤:

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

發生此錯誤是因為DataFrame 已經有一個標記為的列'2,' 並嘗試從中重新索引會創建不明確的分配。

解決問題

要解決此問題,您需要驗證索引或DataFrame 的列標籤不包含重複值。如果發生這種情況,您可以刪除重複值或重新唯一地標記它們。

以上是如何解決 Pandas 中的“ValueError:無法從重複軸重新索引”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn