连续五只熊猫

时间:2018-10-21 21:56:16

标签: python pandas

我有一个数据框-

cols = ['hops','frequency']
data = [[-13,2],[-8,2],[-5,1],[0,2],[2,1],[4,1],[7,1]]
data = np.asarray(data)
indices = np.arange(0,len(data))

df= pd.DataFrame(data, index=indices, columns=cols)

现在,我想检查与最大值相关的跃点的索引是否连续。 例如,这里的最大频率是2,包含它们的索引是0 1 3。现在我们需要检查所有元素是否连续。在这种情况下,因为索引必须是0 1 2才是连续的。

1 个答案:

答案 0 :(得分:1)

将您的逻辑分成几部分,您会发现构建解决方案更加容易。

首先使用布尔索引来计算索引:

idx = df.index[df['frequency'] == df['frequency'].max()]
# Int64Index([0, 1, 3], dtype='int64')

然后计算连续值之间的差:

diffs = np.diff(idx)
# array([1, 2], dtype=int64)

最后,检查所有差异是否等于1:

diff_one_check = (diffs == 1).all()
# False