Boolean for unique value in a column

自作多情 提交于 2019-12-20 03:23:30

问题


For my dataframe, e.g.

df = pd.DataFrame([1, 3, 7, 1], columns=['data'])

I want to know for each index if the value is unique in the column data.

So the resulting dataframe should be

    data    is_unique
0   1       False
1   3       True
2   7       True
3   1       False

Is there a convenient approach with pandas?


回答1:


Use duplicated with invert mask by ~:

df['is_unique'] = ~df['data'].duplicated(keep=False)
print (df)

   data  is_unique
0     1      False
1     3       True
2     7       True
3     1      False



回答2:


By using value_counts + map

df.assign(BOOL=df.data.map(df.data.value_counts()>1))
Out[437]: 
   data   BOOL
0     1   True
1     3  False
2     7  False
3     1   True

By using drop_duplicate

df.assign(BOOL=df.index.isin(df.drop_duplicates('data',keep =False).index))

Out[440]: 
   data   BOOL
0     1  False
1     3   True
2     7   True
3     1  False


来源:https://stackoverflow.com/questions/46589831/boolean-for-unique-value-in-a-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!