我有一个这样的DataFrame:
import pandas as pd
df = pd.DataFrame({
'minutes':[1,2,3,4,5,6,7,8,9,10],
'score1': [0,0,1,1,0,0,0,1,1,2],
'score2': [0,1,1,1,1,2,1,1,2,2],
'sum_score': [0,1,2,2,1,2,1,2,3,4]
})
输出:
minutes score1 score2 sum_score
0 1 0 0 0
1 2 0 1 1
2 3 1 1 2
3 4 1 1 2
4 5 0 1 1
5 6 0 2 2
6 7 0 1 1
7 8 1 1 2
8 9 1 2 3
9 10 2 2 4
列score1
和score2
不是顺序增加的.在某些行中,其值减小.
当循环遍历每一行时,我想删除所有值高于当前行的先前行,考虑到列score1
和score2
.
我试着戴上口罩:
m1 = (df['score1'] > df['score1'].shift(-1))
m2 = (df['score2'] > df['score2'].shift(-1))
df = df.loc[~(m1 & m2)]
但它的效果并不像预期的那样好.
我希望得到这样的消息:
输出:
minutes score1 score2 sum_score
0 1 0 0 0
1 2 0 1 1
4 5 0 1 1
6 7 0 1 1
7 8 1 1 2
8 9 1 2 3
9 10 2 2 4