如何在Python DataFrame中逐行检查id1列值是否唯一
逐行检查DataFrame中id列值是否唯一的实现方法
原始数据
你有如下DataFrame:
| id1 | result |
|---|---|
| 2 | 0.5 |
| 3 | 1.4 |
| 4 | 1.4 |
| 7 | 3.4 |
| 2 | 1.4 |
需求
需要逐行检查id1列的每个值是否唯一,期望输出每行对应的布尔值(值重复的行返回False,仅出现一次的行返回True):
False True True True False
你之前使用的df["id1"].is_unique方法只能判断整列是否所有值都唯一,无法实现逐行检查的需求。
解决方案
可以使用Pandas的duplicated()方法,配合keep=False参数来实现:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'id1': [2, 3, 4, 7, 2], 'result': [0.5, 1.4, 1.4, 3.4, 1.4] }) # 逐行判断id1值是否唯一 is_unique = ~df['id1'].duplicated(keep=False) # 输出每行结果 for val in is_unique: print(val)
代码说明
df['id1'].duplicated(keep=False):该方法会将id1列中所有重复出现的值对应的行标记为True(无论第一次还是后续出现的行)~:对结果取反,使得重复值对应的行变为False,唯一值对应的行变为True,完全匹配你的期望输出。
内容的提问来源于stack exchange,提问作者ranqnova
相关产品推荐
相关产品推荐

