假设我有一个数据框:
df = pd.DataFrame({'A':[5,4,7,8,1,2,3,4,5,7,8,9],'B':[1,2,2,2,2,5,9,8,8,10,11,10]})
print df
A B
0 5 1
1 4 2
2 7 2
3 8 2
4 1 2
5 2 5
6 3 9
7 4 8
8 5 8
9 7 10
10 8 11
11 9 10
我想在df.A中只找到连续较高的值,因此df会变为:
A B
0 5 1
2 7 2
3 8 2
11 9 10
这里最好的(读取最快)方式是什么;我尝试过一些相当复杂的东西,但是它实际上比整个帧的循环慢。
感谢。
答案 0 :(得分:1)
此解决方案仅在B单调增长时才有效:
.
这个更通用:
df.cummax().drop_duplicates('A')
# A B
#0 5 1
#2 7 2
#3 8 2
#11 9 10