Boolean for unique value in a column

后端 未结 3 1863
孤街浪徒
孤街浪徒 2020-12-12 02:28

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 col

相关标签:
3条回答
  • 2020-12-12 03:03
    from collections import Counter
    
    c = Counter(df.client.to_list())
    
    df["new_col"] = df.client.apply(lambda x:not(c[x] >1) )
    
    0 讨论(0)
  • 2020-12-12 03:05

    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
    
    0 讨论(0)
  • 2020-12-12 03:19

    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
    
    0 讨论(0)
提交回复
热议问题