我試圖讓我的腳本讀取“data_b”和“data_d”列,如果它看到條件“Rest”和“True”,它應(yīng)該保存前一行。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 行滿足條件。因?yàn)樗仨殐H保存第 60 行和第 182 行。
2 回答

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
嘗試:
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)

料青山看我應(yīng)如是
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
嘗試用shift
newdf = df[df['data_d'].shift(-1).equal('True') & df['data_b'].shift(-1).eq('Rest')]
添加回答
舉報(bào)
0/150
提交
取消