Python 可以用熊猫做吗?
我有一个数据框,它的列名是“c”,看起来像这样Python 可以用熊猫做吗?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框,它的列名是“c”,看起来像这样 df.c = -2 , -3.66, -7, 1 ,-3, 5, -4.66 ,-2, 9, -1, -7, -5.7, 3 , -5 在不改变行的顺序的情况下,我希望找到从峰值到新峰值的最大下降 例如,为了得到5,下降的总和为(-4.66)+(-2),即-6.66,直到达到新的峰值,即,在这种情况下,为9,为得到9的下降为 -1+-7+-5.7+-5=-18.7,正如你所看到的,在这个加法中我没有考虑3,因为它是正的 因此,我要寻找
df.c = -2 , -3.66, -7, 1 ,-3, 5, -4.66 ,-2, 9, -1, -7, -5.7, 3 , -5
在不改变行的顺序的情况下,我希望找到从峰值到新峰值的最大下降
例如,为了得到5,下降的总和为(-4.66)+(-2),即-6.66,直到达到新的峰值,即,在这种情况下,为9,为得到9的下降为
-1+-7+-5.7+-5=-18.7,正如你所看到的,在这个加法中我没有考虑3,因为它是正的
因此,我要寻找的答案是-18.7您只需遍历序列即可获得最大压降:
def FindMaxDrop:
峰值=-2147483648
下降=0
ans=0
对于s中的num:
如果num>峰值:
ans=最小值(ans,下降)
下降=0
峰值=num
如果num<0:
drop=drop+num
ans=最小值(ans,下降)
返回ans
FindMaxDrop(df.c)
您能包括您迄今为止尝试过的内容吗?还有一个更详细的描述,你认为max下降将是有益的,这有点混乱。为什么在最后一种情况下3不被视为新的峰值?是因为它不高于上一个峰值吗?为什么3没有被认为是一个新的峰值,因为它小于9。所以通常我们把较高的值作为一个峰值,一个峰值通常有一个突出部分