使用某些参数搜索数据框并存储关联的值

问题描述

我有一个包含以下信息的数据框。

STATE         VOLTS
discharge     2.31725         
discharge     2.31714         
Rest          2.34857        
Rest          2.38084         
Rest          2.38182        
Rest          2.38222        
Rest          2.38651        
Rest          2.38643        
Rest          2.38647        
Rest          2.38651        
Rest          2.38647        
discharge     2.32013       
discharge     2.31926        

我想做的是让我的脚本通过“状态”列,并且如果看到从“放电”到“其余”的更改,则应执行数学运算:2.34857-2.31714 = 0.03143并存储该值在新的数据框中。

但是,在“状态”列下,如果看到“放电”为“放电”,则应仅存储与“放电”值关联的“电压”。在这种情况下,为2.38647。理想情况下,该值还应与先前的值存储在同一数据帧中。

解决方法

定义一个条件,该条件为true时,将值作为名为value的新列返回:

row_cond = (df.STATE == "Rest") & (df.STATE.shift(1) == "Discharge")
new_col = "value"
df.loc[row_cond,new_col] = 2.34857 - 2.31714