我有一個資料框,如下所示:

當結果從“否”變為“確定”時如何檢查條件,以及它是否確實將下一列填充為真。結果應如下所示:

uj5u.com熱心網友回復:
我的理解問題是只需要測驗OK重復的組,所以這里有更多資料的解決方案:
#test OK
m = df['Result'].eq('OK')
#first values per groups by consecutive values
m1 = m.ne(m.shift())
#chained consecutive OK with first values per groups
df['check1'] = m1.cumsum().duplicated(keep=False) & m1
#chained OK if from NO to OK with consecutive OK
df['check2'] = (m & df['Result'].shift().eq('NO')) & m1.cumsum().duplicated(keep=False)
print (df)
Result check1 check2
0 OK False False
1 NO False False
2 OK True True
3 OK False False
4 NO False False
5 OK True True
6 OK False False
7 OK False False
8 NO False False
9 OK False False
10 NO False False
11 OK False False
uj5u.com熱心網友回復:
嘗試:
df['check'] = df['Result'].eq('OK') & df['Result'].shift().eq('NO')
print(df)
# Output:
Result check
0 NO False
1 OK True
2 OK False
3 NO False
4 OK True
5 OK False
6 OK False
7 NO False
要正確顯示:
df['check'] = df['check'].replace({True: 'TRUE', False: ''})
print(df)
# Output:
Result check
0 NO
1 OK TRUE
2 OK
3 NO
4 OK TRUE
5 OK
6 OK
7 NO
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/383538.html
上一篇:通過從固定的常量日期時間中以秒為單位偏移時間來獲取新的資料時間
下一篇:洗掉出現在另一個資料框中的索引
