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

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 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号