如何在Pandas DataFrame中禁止重复的标签?

如何在Pandas DataFrame中禁止重复的标签?

在默认情况下,Pandas允许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]

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程