簡體   English   中英

Python Pandas函數可在上一行和當前行上進行計算

[英]Python Pandas function which computes over previous row and current row

“ EXCEL SHEET示例”

給出一個我想轉換為另一個數據框的數據框,其中轉換函數在前一行和當前行上運行。 在給定的示例中,

RowID =1 is copied as is,

但是從RowID 2開始,

Current Cell = Max(CurrentCell, Previous Cell * 0.9999 )
H4 <= MAX(B4, H3*0.9999)
where,
B4  = original value, 
H3  = the previous row **'After Transformation'**

在此處輸入圖片說明

正在進行中,使用cumsumcumcount創建自己的函數,然后update

def yourfun(s):
    s.update(s.mask(s==0).ffill()-s.groupby(s.mask(s==0).eq(1).cumsum()).cumcount()*0.0001)
    return s
df.apply(yourfun)
Out[291]: 
        1       2       3       4
0  0.0000  0.0000  1.0000  0.0000
1  0.0000  1.0000  0.9999  1.0000
2  0.0000  0.9999  0.9998  0.9999
3  1.0000  0.9998  0.9997  1.0000
4  0.9999  1.0000  1.0000  0.9999
5  0.9998  0.9999  0.9999  0.9998
6  1.0000  0.9998  0.9998  0.9997

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM