首页  >  文章  >  后端开发  >  如何解决 Pandas 中的'ValueError:无法从重复轴重新索引”?

如何解决 Pandas 中的'ValueError:无法从重复轴重新索引”?

Patricia Arquette
Patricia Arquette原创
2024-10-23 19:01:02729浏览

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