Python:计算具有重复值的列中每个唯一值的第一个实例

标签 python pandas numpy

第一次在这里发帖,如果不清楚,请道歉。我有一个 pandas 数据框,并尝试为列中每个唯一值的第一个实例返回 1,并为第一个唯一实例之后的每个重复值返回 0。

在 Excel 中,我使用了以下公式,但在较大的数据框中,它变得站不住脚。

=IF(COUNTIF($A$2:A2,A2)=1,1,0)

ID  Unique
ABC1    1
ABC1    0
ABC1    0
ABC2    1
ABC3    1
ABC3    0
ABC4    1

最佳答案

使用 duplicated 的否定:

df['unique'] = (~df.ID.duplicated()).astype(int)
print(df)

输出

     ID  unique
0  ABC1       1
1  ABC1       0
2  ABC1       0
3  ABC2       1
4  ABC3       1
5  ABC3       0
6  ABC4       1

关于Python:计算具有重复值的列中每个唯一值的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59057640/

相关文章:

python - 如何更改分类 x 轴的绘图顺序

python - python 多处理管理器列表所需的库?

python - 将列名作为变量传递给 python/pandas 函数中的 select 语句

python - 递归计算 DataFrame 值

Python numpy 字符串乘法

python - 使除法结果为小数点后两位的 float (Python)

python - 如何检测按键?

python - 严格高于原始曲线的平滑算法

python - 替换 pandas 数据框 x;如果 bool 数组中的相应索引为 True,则 y 值为 NaN

python - 测试一个数组是否可以广播到一个形状?