pandas 布尔值表示列中的唯一值

r6hnlfcb  于 2022-12-16  发布在  其他
关注(0)|答案(3)|浏览(156)

对于我的 Dataframe ,例如

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

我想知道每个索引的值在列data中是否是唯一的。
因此,生成的 Dataframe 应为

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

对Pandas有什么方便的方法吗?

zzlelutf

zzlelutf1#

使用duplicated,反转遮罩为~

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
8ljdwjyq

8ljdwjyq2#

可以按如下方式使用pandas.Series.mappandas.Series.value_counts

df['is_unique'] = df['data'].map(df['data'].value_counts() == 1)

[Out]:

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

ve7v8dk23#

from collections import Counter

c = Counter(df.client.to_list())

df["new_col"] = df.client.apply(lambda x:not(c[x] >1) )

相关问题