Python 是否有用于重复值的函数?

Python 是否有用于重复值的函数?,python,pandas,duplicates,Python,Pandas,Duplicates,考虑系列x_1,x_2,x_3,x_4。。。如果x_I=x_{I+1},我想将x_I设置为NaN。。。。我不在乎x_2是否等于x_9。有一两秒钟,我以为这就是重复值的含义,但现在我发现它会关心x_9。我很确定熊猫身上肯定已经有这种习惯了,但我找不到 def ff_repeated(xnp): nfnp = xnp.size ffnp = np.empty(nfnp,dtype=bool) ffnp[0] = False for i in range(1,nfnp)

考虑系列x_1,x_2,x_3,x_4。。。如果x_I=x_{I+1},我想将x_I设置为NaN。。。。我不在乎x_2是否等于x_9。有一两秒钟,我以为这就是重复值的含义,但现在我发现它会关心x_9。我很确定熊猫身上肯定已经有这种习惯了,但我找不到

def ff_repeated(xnp):
    nfnp = xnp.size
    ffnp = np.empty(nfnp,dtype=bool)
    ffnp[0] = False
    for i in range(1,nfnp):
        ffnp[i] =  xnp[i] == xnp[i-1] 
    return ffnp
想法?我如何使用上面的是那么

ffnp = ff_repeated(dm.loc["Pressure"].values)
dm.loc["Pressure",ffnp] = np.NaN

您的版本应该可以正常工作,但它涉及for循环,因此本质上是缓慢的。您可以通过简单地移动
pd.Series
并随后进行比较来使用矢量化:

xnp=pd.系列([1,2,3,3,4,2,5,5,6])
ffnp=xnp.shift(1)=xnp
ffnp
0错误
1错误
2错误
3正确
4错误
5错误
6错误
7正确
8错误

然后,您可以使用
ffnp
将值设置为
nan
,就像您所做的那样

也许可以查看我所需要的内容。为了一个有趣的(?)转变。如果要始终强制最后一行为False,请不要执行创建新索引的“``ffnp[-1]=False``”。正确答案是ffnp.iloc[-1]=False。天哪,我花了很长时间调试。。。