为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

喵喔喔 2023-07-11 17:08:59
我试图让我的脚本读取“data_b”和“data_d”列,如果它看到条件“Rest”和“True”,它应该保存前一行。data_frameRow_ID           data_a      data_b    data_c      data_d59               0.30781     Discharge 2.31725     NaN60               0.30786     Discharge 2.31714     NaN61               0.30792          Rest 2.34857    True62               0.31313          Rest 2.38084     NaN181              0.93398     Discharge 2.31103     NaN182              0.93398     Discharge 2.31115     NaN183              0.93408          Rest 2.34550    True184              0.93930          Rest 2.36800     NaN我希望输出如下:Row_ID           data_a      data_b    data_c      data_d60               0.30786     Discharge 2.31714     NaN182              0.93398     Discharge 2.31115     NaN如您所见,第 61 行和第 183 行满足条件。因为它必须仅保存第 60 行和第 182 行。
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

尝试:


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)


查看完整回答
反对 回复 2023-07-11
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

尝试用shift

newdf = df[df['data_d'].shift(-1).equal('True') & df['data_b'].shift(-1).eq('Rest')]


查看完整回答
反对 回复 2023-07-11
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信