验证列名是否是唯一标识符
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]
我有一个名为 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
:
df_with_index = df_authors.set_index('author', verify_integrity=True)
如果索引不是唯一的,该语句将失败(因为 verify_integrity
),而且您将能够使用作者作为索引,例如:
df_with_index.loc[author]