带有if语句的python数据帧布尔值

2024-05-23 21:58:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让if语句显示所有重复的REF_nt,我试过这样做:

(df_picru['REF_INT'].value_counts()==1)

它显示了我所有的价值观是真是假,但我不想这样做:

^{pr2}$

Tags: refdfifvalue语句int价值观counts
3条回答

我认为对于布尔掩码和新列^{},您需要^{}

mask = df_picru['REF_INT'].duplicated(keep=False)

样品:

^{pr2}$

If need检查至少一个If unique值需要^{},以便将boolean mask-array转换为标量{}或{}:

if mask.any():
    print ('at least one unique')
at least one unique

另一个使用groupby的解决方案。

#groupby REF_INT and then count the occurrence and set as duplicate if count is greater than 1
df_picru.groupby('REF_INT').apply(lambda x: 'Duplicated' if len(x)> 1 else 'Unique')
Out[21]: 
REF_INT
1        Unique
2    Duplicated
3        Unique
8    Duplicated
dtype: object

如果您做一个小的改变,值计数实际上可以工作:

^{pr2}$
In [28]: df_picru['new'] = \
             df_picru['REF_INT'].duplicated(keep=False) \
                     .map({True:'duplicates',False:'unique'})

In [29]: df_picru
Out[29]:
   REF_INT         new
0        1      unique
1        2  duplicates
2        3      unique
3        8  duplicates
4        8  duplicates
5        2  duplicates

相关问题 更多 >