问题描述
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