如何禁止 Pandas DataFrame 中出现重复标签?
pythontkinterserver side programmingprogramming
默认情况下,Pandas 允许 DataFrame 中出现重复标签。但是,这可能会导致问题,因为如果 DataFrame 中存在重复标签,某些 Pandas 方法将不起作用。在本文中,我们将了解如何防止 Pandas 允许重复标签或在编译时捕获它们。
示例
查看以下代码。我们有一个 DataFrame,其中两列具有相同的列名 "Name"。尽管如此,Pandas 仍会生成所需的输出而不会出现任何问题。
import pandas as pd df = pd.DataFrame( [ ['John', 89, 'Maths'], ['Jacob', 23, 'Physics'], ['Tom', 100, 'Chemistry']], columns=['Name', 'Name', 'Subjects']) print("Input DataFrame is:\n", df)
输出
它将产生以下输出 -
Input DataFrame is: Name Name Subjects 0 John 89 Maths 1 Jacob 23 Physics 2 Tom 100 Chemistry
现在,让我们看看如何防止 Pandas 允许重复标签。
我们可以使用 .set_flags(allows_duplicate_labels=False),它将自动检测 DataFrame 中的重复标签并抛出错误。
现在,运行相同的代码,将 allows_duplicate_labels 设置为 False,它将产生错误 −
import pandas as pd df = pd.DataFrame( [ ['John', 89, 'Maths'], ['Jacob', 23, 'Physics'], ['Tom', 100, 'Chemistry']], columns=['Name', 'Name', 'Subjects'] ).set_flags(allows_duplicate_labels=False) print("Input DataFrame is:\n", df)
现在,它将捕获重复的标签并产生以下错误 -
pandas.errors.DuplicateLabelError: Index has duplicates. label positions Name [0, 1]