假设我有以下数据帧:
df = pd.DataFrame({'a': [10, 20, 30, 40, 50], 'b': [0, 10, 40, 45, 50]}, columns = ['a', 'b'])
我想列出一个索引,其中:
a [i - 1] < b[i] and a[i] >= b[i]
为了检测时间序列中的一个值何时与另一个值交叉
有没有一种惯用的方法来实现这一点,而不必遍历所有元素
我尝试创建一个带有标志的新列来指示交叉:
df['t'] = (df['a'].shift(1).values < df['b'].values and di['a'].values >= df['b']).astype(bool)
但那是无法编译的。我不知道如何解决这个问题,除了循环所有元素
可以将^{} 与^{} 一起使用,后者小于^{em>,与
<
相同,后者大于或等于,与>=
相同:注意,我们不必指定} 并在定义条件时返回
astype(bool)
,pandas使用^{booleans
要获取带有
True
的行的indices
,请使用:相关问题 更多 >
编程相关推荐