![](/img/trans.png)
[英]pandas dataframe - How to find consecutive rows that meet some conditions?
[英]Pandas, how to find rows that meet certain conditions and save the previous row in a new dataframe
我试图做到这一点,以便我的脚本读取“data_b”和“data_d”列,如果它看到条件“Rest”和“True”,它应该保存前一行。
data_frame
Row_ID data_a data_b data_c data_d
59 0.30781 Discharge 2.31725 NaN
60 0.30786 Discharge 2.31714 NaN
61 0.30792 Rest 2.34857 True
62 0.31313 Rest 2.38084 NaN
181 0.93398 Discharge 2.31103 NaN
182 0.93398 Discharge 2.31115 NaN
183 0.93408 Rest 2.34550 True
184 0.93930 Rest 2.36800 NaN
我希望 output 如下所示:
Row_ID data_a data_b data_c data_d
60 0.30786 Discharge 2.31714 NaN
182 0.93398 Discharge 2.31115 NaN
如您所见,第 61 行和第 183 行符合条件。 为此,它必须只保存第 60 行和 182 行。
尝试:
l = list()
for index , row in df.iterrows():
try:
if row["data_b"] == "Rest" and row["data_d"] == "True":
fila = df.iloc[index - 1,:]
l.append(fila)
except Exception as e:
print(e)
continue
result = pd.DataFrame(l)
尝试shift
newdf = df[df['data_d'].shift(-1).equal('True') & df['data_b'].shift(-1).eq('Rest')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.