Pandas,如何查找满足特定条件的行并将前一行保存在新的数据框中

我试图让我的脚本读取“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

我希望输出如下:


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 行。


喵喔喔
浏览 167回答 2
2回答

杨__羊羊

尝试: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)        continueresult = pd.DataFrame(l)

料青山看我应如是

尝试用shiftnewdf = df[df['data_d'].shift(-1).equal('True') & df['data_b'].shift(-1).eq('Rest')]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python