我有一個帶有一些資料的熊貓資料框:
0 -0.000601 1 0.000001 2 0.000000 3 0.000007 4 0.000300 5 -0.000300 Name: measure, dtype: float64
我想一次對它們求和,并且在每次求和時檢查總和,然后提取總和中達到的最高值。
所以第一個總和是 element 0,值為-0.000601,發送是-0.000601 0.000001=-0.0006,這將高于第一個總和(換句話說,就是 element 0),因此該值將是該點的最大值。
我想一個 for 回圈可以完成這項作業,但我更愿意做一些類似 Python 的事情,measure.loc[0:4, 'measure'].max()但這只是檢查總和的最大值。
uj5u.com熱心網友回復:
我相信你需要一個累積和然后找到最大值。
>>> df = pd.DataFrame({'a':[-0.000601, 0.000001, 0.000000, 0.000007, 0.000300, -0.000300]})
>>> df
out:
a
0 -0.000601
1 0.000001
2 0.000000
3 0.000007
4 0.000300
5 -0.000300
>>> df['b'] = df.cumsum()
>>> df
out:
a b
0 -0.000601 -0.000601
1 0.000001 -0.000600
2 0.000000 -0.000600
3 0.000007 -0.000593
4 0.000300 -0.000293
5 -0.000300 -0.000593
>>> df[df['b'] == df['b'].max()]
out:
a b
4 0.0003 -0.000293
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420312.html
標籤:
