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

2024-10-01 17:21:53 发布

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

考虑系列XY1、XY2、XY3、XY4…如果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

Tags: npdmnanrepeatedlocff含义pressure
1条回答
网友
1楼 · 发布于 2024-10-01 17:21:53

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

xnp = pd.Series([1,2,3,3,4,2,5,5,6])
ffnp = xnp.shift(1) == xnp

ffnp

0    False
1    False
2    False
3     True
4    False
5    False
6    False
7     True
8    False

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

相关问题 更多 >

    热门问题