验证列名是否是唯一标识符

Verify that a column name is a unique identifier

我有一个名为 df_authors 的数据集,在该数据集中我有一个名为 author 的列。我必须验证 df_authors.author 是唯一标识符。

我试过的,len(df_authors) == len(df_authors['author'].unique()),这个returns正确。

我的问题是我做对了吗?我在网上找到了这行代码,但不能 100% 确定它是否按照我的想法行事。

我对唯一标识符的理解是,该列中的每一行都有唯一的值,这行代码根据数据集检查每一行是否唯一。

如果有人能告诉我我的看法是否正确,我将不胜感激。谢谢。

您对唯一标识符的理解是正确的,但是这行代码的工作方式有点不同:

len(df_authors) 为您提供 DataFrame 中的行数。 len(df_authors['author'].unique()) 为您提供 author 列中唯一值的数量。如果两个长度相同,则必然意味着 author 是唯一的。

您还可以通过使用 set_index:

更直接地利用 pandas
df_with_index = df_authors.set_index('author', verify_integrity=True)

如果索引不是唯一的,该语句将失败(因为 verify_integrity),而且您将能够使用作者作为索引,例如:

df_with_index.loc[author]