唯一值 python

Unique values python

我试图从根本上查看一列,如果该列具有唯一值,则输入 1,但如果没有,它就变成了 NaN,我的数据框如下所示:

    Street             Number
0   1312 Oak Avenue     1
1   14212 central Ave   2
2   981 franklin way    1

我用来将数字 1 放在唯一值旁边的代码如下:

df.loc[(df['Street'].unique()), 'Unique'] = '1'

然而,当我 运行 这个时,我得到这个错误 KeyError: "not in index" 我不知道为什么。我在 Number 列上尝试 运行ning 这个,我得到了我想要的结果:

    Street            Number    Unique
0   1312 Oak Avenue     1         NaN
1   14212 central Ave   2          1
2   981 franklin way    1          1

所以我指定哪些是唯一的列称为唯一,它在唯一的行旁边放置一个,在重复的行旁边放置 NaN。所以在这种情况下,我有 2 个,它注意到并使第一个 NaN 和第二个它提供 1,因为它们只有 1 个,所以它也为我们提供 1,因为它是唯一的。我只是不知道为什么我会收到关于街道栏的错误。

这并没有真正产生您想要的结果。 df['Number'].unique()array([1, 2], dtype=int64)的输出恰好在索引中。如果 Number 而不是 [3, 4, 3],你会在该列上遇到同样的问题。

对于您正在寻找的内容,选择不存在的地方 duplicated,或者您在删除重复项后离开的地方,可能比 unique:

更好
df.loc[~(df['Number'].duplicated()), 'Unique'] = 1
df
Out[51]: 
              Street  Number Unique
0    1312 Oak Avenue       1    1.0
1  14212 central Ave       2    1.0
2   981 franklin way       1    NaN


df.loc[df['Number'].drop_duplicates(), 'Unique'] = 1
df
Out[63]: 
              Street  Number  Unique
0    1312 Oak Avenue       1     NaN
1  14212 central Ave       2     1.0
2   981 franklin way       1     1.0