如何找到另一个系列将达到/交叉给定值的索引?

时间:2019-04-19 11:52:47

标签: python pandas numpy

假设我有一个称为X的值的时间序列。

我现在想知道第一个索引,之后Y将达到其他系列X的值。或者换句话说,对于每个索引i,我想知道 first 索引j 之后X组成的行j-1jYi的值相交。

下面是一组示例XY系列的示例,显示了Z的结果值。 这些系列的长度始终相同

X | Y   | Z
2 | 3   | 2
2 | 3   | NaN
4 | 4.5 | 3
5 | 5   | NaN
4 | 5   | NaN
3 | 2   | 6
1 | 2   | NaN

pandasnumpy是否提供有助于此目的的内容?此函数将在大型数据集上运行,因此我无法使用python循环。

1 个答案:

答案 0 :(得分:4)

numpy broadcastingshifted的值进行比较,然后以DataFrame.idxmax得到前True的索引,并稍作改进-在NaN列中添加了{ {1}}(如果每行所有NaN个值,最后删除重复的值:

False