我试图基本上查看一列,如果该列具有唯一值,则输入 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:“不在索引中”我不知道为什么。我尝试在“数字”列上运行它,得到了我想要的结果:
Street Number Unique
0 1312 Oak Avenue 1 NaN
1 14212 central Ave 2 1
2 981 franklin way 1 1
所以我指定哪些是唯一的列称为“唯一”,它在唯一的行旁边放置一个“1”,在重复的行旁边放置“NaN”。因此,在这种情况下,我有 2 个 1,它注意到第一个 NaN,第二个它提供 1,因为它们只有 1 个两个,所以它也为我们提供 1,因为它是唯一的。我只是不知道为什么街道专栏会出现该错误。
最佳答案
这并没有真正产生您想要的结果。 df['Number'].unique()
, array([1, 2], dtype=int64)
的输出恰好位于索引中。例如,如果 Number
是 [3, 4, 3]
,您会在该列上遇到相同的问题。
对于您要查找的内容,选择不重复的位置或删除重复项后留下的位置可能比唯一
更好:
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
关于python - 独特的值(value) python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44728349/