理解“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中文网其他相关文章!