Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在基于值条件的切片之后获取数据帧中的下一行?_Python_Dataframe - Fatal编程技术网

Python 如何在基于值条件的切片之后获取数据帧中的下一行?

Python 如何在基于值条件的切片之后获取数据帧中的下一行?,python,dataframe,Python,Dataframe,例如,我有以下两个数据帧 In [29]: pbm_sig Out[29]: Open Trouble Timestamp 2019-12-22 06:40:00+00:00 7137.00 dis_val 2019-12-22 06:45:00+00:00 7134.34 dis_val 2019-12-22 06:50:00+00:00 7135.03

例如,我有以下两个数据帧

In [29]: pbm_sig
Out[29]: 
                              Open  Trouble
Timestamp                                  
2019-12-22 06:40:00+00:00  7137.00  dis_val
2019-12-22 06:45:00+00:00  7134.34  dis_val
2019-12-22 06:50:00+00:00  7135.03  dis_val
2019-12-22 06:55:00+00:00  7131.74  dis_val

In [30]: known_ca
Out[30]: 
                              Open    Trouble Corrective
Timestamp                                               
2019-12-22 06:40:00+00:00  7137.00    dis_val     remove
2019-12-22 06:45:00+00:00  7134.34    dis_val     remove
2019-12-22 06:50:00+00:00  7135.03    dis_val       keep
2019-12-22 06:55:00+00:00  7131.74    dis_val     remove
2019-12-22 07:00:00+00:00  7188.00    dis_val        add
2019-12-22 07:05:00+00:00  7389.00  short_dur     remove
已知的ca是一个更大的数据帧,但这里有一个包含相关数据的摘录。 我使用以下代码检索感兴趣的行(关于包含pbm_sig的内容)

现在是问题。我想获得已知的\u ca中的下一行,即在纠正措施数据框中检索到的最后一行之后的那一行。举个例子,我指的是这一行:

2019-12-22 07:00:00+00:00  7188.00    dis_val        add
请问,你有什么办法吗? 谢谢你的帮助。 祝您今天过得愉快。 最好,移开面罩:

mask_orig = (known_ca['Trouble'].isin(pbm_sig['Trouble'])) & (known_ca.index.isin(pbm_sig.index))
mask_shifted = mask_orig.shift(1)
如果不希望原始值介入,请排除它们,即

mask_shifted = mask_shifted & ~mask_orig
df = df[mask_shifted]
移动遮罩:

mask_orig = (known_ca['Trouble'].isin(pbm_sig['Trouble'])) & (known_ca.index.isin(pbm_sig.index))
mask_shifted = mask_orig.shift(1)
如果不希望原始值介入,请排除它们,即

mask_shifted = mask_shifted & ~mask_orig
df = df[mask_shifted]

你好,Oleg O,非常感谢您的反馈。实际上,我想把最后一行添加到mask_orig中,条件是“Corrective”列中的值是“add”,而“Trouble”列中的值与pbm_sig数据帧中的第一行相同(这里是“dis_val”)。您是否知道是否有一个“扩展”功能而不是您建议的“移位”功能,以便保留第一行?如果没有,我想我将使用您的建议仅获取最后一行,然后使用append()将其添加到mask_orig。再次感谢你的帮助!在这种情况下,如果我理解正确,您可以对原始掩码执行逻辑或,即
掩码原掩码|掩码移位
。你好,Oleg O,非常感谢您的反馈。实际上,我想把最后一行添加到mask_orig中,条件是“Corrective”列中的值是“add”,而“Trouble”列中的值与pbm_sig数据帧中的第一行相同(这里是“dis_val”)。您是否知道是否有一个“扩展”功能而不是您建议的“移位”功能,以便保留第一行?如果没有,我想我将使用您的建议仅获取最后一行,然后使用append()将其添加到mask_orig。再次感谢你的帮助!在这种情况下,如果我理解正确,您可以对原始掩码执行逻辑或操作,即
掩码原始|掩码移位