我有一个数据框-
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才是连续的。
答案 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