Python 对于循环系列,一旦为真,则打印另一个值

Python 对于循环系列,一旦为真,则打印另一个值,python,pandas,series,Python,Pandas,Series,尝试从数据帧中查找值,如下所示: df = pd.DataFrame({'Price': [2,4,6,7,8], 'compare': [True, True, False, False, True]}) 如果“比较”中的值为True,则我希望打印同一行中但在“价格”列中对应的数字,打印此值后,我希望在“价格”列中打印前一行,在“价格”列中打印后一行 有什么想法吗? 我想到了一个循环,然后试图得到这些值,但我找不到一个方法来实现它 关于我可以运行并获取这

尝试从数据帧中查找值,如下所示:

df = pd.DataFrame({'Price': [2,4,6,7,8],
                   'compare': [True, True, False, False, True]})
如果“比较”中的值为True,则我希望打印同一行中但在“价格”列中对应的数字,打印此值后,我希望在“价格”列中打印前一行,在“价格”列中打印后一行

有什么想法吗? 我想到了一个循环,然后试图得到这些值,但我找不到一个方法来实现它

关于我可以运行并获取这些值的pd方法或函数的任何建议?

IIUC:

In [42]: df.assign(prev_price=df.Price.shift(), next_price=df.Price.shift(-1))
Out[42]:
   Price  compare  next_price  prev_price
0      2     True         4.0         NaN
1      4     True         6.0         2.0
2      6    False         7.0         4.0
3      7    False         8.0         6.0
4      8     True         NaN         7.0
过滤:

In [43]: df.loc[df.compare].assign(prev_price=df.Price.shift(), next_price=df.Price.shift(-1))
Out[43]:
   Price  compare  next_price  prev_price
0      2     True         4.0         NaN
1      4     True         6.0         2.0
4      8     True         NaN         7.0

在熊猫身上做起来相当容易,而且没有环。请提供一个小样本数据集和您所需的数据集由于某种原因我无法上传图片。我的最终目标是得到一个数学计算,由我通过迭代得到的数字提供,无论一列是否为真。如果这一列中的一个值为真,那么另一列中的值将有助于单独进行计算。请阅读并相应地编辑您的帖子。