我有一个这样的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

score1score2不是顺序增加的.在某些行中,其值减小.

当循环遍历每一行时,我想删除所有值高于当前行的先前行,考虑到列score1score2.

我试着戴上口罩:

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

推荐答案

try :

x = df[["score1", "score2"]][::-1].cummin()[::-1]
mask = (df.score1 == x.score1) & (df.score2 == x.score2)

print(df[mask])

打印:

   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

Python相关问答推荐

输出中带有南的亚麻神经网络

无法通过python-jira访问jira工作日志(log)中的 comments

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

如何使用它?

如何在WSL2中更新Python到最新版本(3.12.2)?

Scrapy和Great Expectations(great_expectations)—不合作

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

使用Python从URL下载Excel文件

ConversationalRetrivalChain引发键错误

在Admin中显示从ManyToMany通过模型的筛选结果

Flask运行时无法在Python中打印到控制台

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

使用Python TCP套接字发送整数并使用C#接收—接收正确数据时出错

如何使用大量常量优化代码?

Django在一个不是ForeignKey的字段上加入'

Regex用于匹配Python中逗号分隔的AWS区域

如何将django url参数传递给模板&S url方法?

如何在不遇到IndexError的情况下将基数10的整数转换为基数80?

如何使用count()获取特定日期之间的项目