技术文章和资源

技术文章(时间排序)

热门类别

Python PHP MySQL JDBC Linux

如何禁止 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]


相关文章