理解「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中文網其他相關文章!