簡體   English   中英

當值發生變化和時間超過條件時,Pandas 數據幀中的增量計數

[英]Increment count in Pandas dataframe when values change and when time exceeds condition

每次Person 的值發生變化時,將count 重置為0。從初始增量開始,每次時間超過2 時增加count。

Person Time DesiredResult
B      0    0
B      2    0
B      2    0
B      4    1
A      0    0
S      0    0
S      1    0
S      2    0
S      4    1
S      8    2

生成數據框的代碼:

df = pd.DataFrame({'Person': ['Bob','Bob','Bob','Bob','Alvin','Steve','Steve','Steve','Steve','Steve']
                     ,'Time': [0,2,2,4,0,0,1,2,4,8]
                     ,'DesiredResult': [0,0,0,1,0,0,0,0,1,2]})

附在以下鏈接中的圖片

https://i.stack.imgur.com/45egh.png

我假設您沒有DesiredResult列。

要創建它,請定義以下函數:

def fn(grp):
    t0 = grp.iloc[0].Time
    return (grp.Time > t0 + 2).cumsum()

然后運行:

df['DesiredResult'] = df.groupby('Person').apply(fn).reset_index(level=0, drop=True)

暫無
暫無

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

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