作者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://webptt.com/cn.aspx?n=bbs/Python/M.1611490558.A.36E.html
1F:→ chickengod: df.hold = df.trigger.cumsum() 01/25 11:13
2F:→ chickengod: df.hold = df.hold.cumsum().shift(1).fillna(0) 01/25 11:13
3F:→ ee24584552: df['hold'] = df['trigger'].cumsum().cumsum() 02/01 23:48
4F:→ ee24584552: 好像不太一样XD 请忽略 02/01 23:51