I have a DataFrame like:
value
0 1
1 2
2 2
3 3
4 4
5 4
Run Code Online (Sandbox Code Playgroud)
I need to check if each value is unique or not, and mark that boolean value to new column. Expected result would be:
value unique
0 1 True
1 2 False
2 2 False
3 3 True
4 4 False
5 4 False
Run Code Online (Sandbox Code Playgroud)
I have tried:
df['unique'] = ""
df.loc[df["value"].is_unique, 'unique'] = True
Run Code Online (Sandbox Code Playgroud)
But this throws exception:
cannot use a single bool to index into setitem
Run Code Online (Sandbox Code Playgroud)
Any advise would be highly appreciated. Thanks.
Use Series.duplicated witn invert mask by ~:
df['unique'] = ~df['value'].duplicated(keep=False)
print (df)
value unique
0 1 True
1 2 False
2 2 False
3 3 True
4 4 False
5 4 False
Run Code Online (Sandbox Code Playgroud)
Or:
df['unique'] = np.where(df['value'].duplicated(keep=False), False, True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |