作者koow ( )
看板Python
標題[閒聊] 如何讓值在一段範圍內一直+1
時間Sun Jan 24 20:15:56 2021
如題 請問一下各位前輩
我想要讓dataframe columns資料中
在某一段時間一直持續+1
ex:
trigger hold
0 0 0
1 0 0
2 1 0
3 0 1
4 0 2
5 0 3
6 0 4
7 -1 5
有一個trigger資料1的時候
hold下一列開始持續+1直到 trigger有-1出現就停止
原本想說很單純用
df.loc[df.trigger.shift(1)==1,['hold']]=1
df.loc[df.hold.shift(1)!=0,['hold']]=df.hold.shift(1)+1
但第一行可以出現我要的
但第二行不行
可否請問一下前輩問題出在哪
或是有甚麼建議的寫法呢
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.185.234 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1611490558.A.36E.html
→ chickengod: df.hold = df.trigger.cumsum() 01/25 11:13
→ chickengod: df.hold = df.hold.cumsum().shift(1).fillna(0) 01/25 11:13
→ ee24584552: df['hold'] = df['trigger'].cumsum().cumsum() 02/01 23:48
→ ee24584552: 好像不太一樣XD 請忽略 02/01 23:51