如何在R语言中标记DataFrame列中重复出现的所有值
解决方法
要实现把所有出现多次的数值都标记为duplicate,可以先统计每个Number的出现次数,再根据次数判断标记:
步骤1:导入依赖并构造示例数据
import pandas as pd import numpy as np # 构造示例DataFrame df = pd.DataFrame({'Number': [100000, 100001, 100002, 100001, 100003]})
步骤2:统计每个数值的出现次数
# 计算每个Number的出现频次 num_counts = df['Number'].value_counts()
步骤3:生成Flag列
用np.where快速判断赋值(也可以用apply,写法见下方):
# 若数值出现次数>1则标记为duplicate,否则为unique df['Flag'] = np.where(df['Number'].map(num_counts) > 1, 'duplicate', 'unique')
或者用apply的写法:
df['Flag'] = df['Number'].apply(lambda x: 'duplicate' if num_counts[x] > 1 else 'unique')
最终结果
运行后df的输出如下:
Number Flag 0 100000 unique 1 100001 duplicate 2 100002 unique 3 100001 duplicate 4 100003 unique
内容的提问来源于stack exchange,提问作者kobbylahm
相关产品推荐
相关产品推荐

