![](/img/trans.png)
[英]Pandas dataframe: uniformly scale down values when column sum exceeds treshold
[英]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]})
附在以下鏈接中的圖片
我假設您沒有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.