首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:创建一个增量变量,根据条件进行更改

Python:创建一个增量变量,根据条件进行更改
EN

Stack Overflow用户
提问于 2015-01-28 21:36:15
回答 1查看 3K关注 0票数 2

我想要创建一个名为'inc‘的变量,它在满足条件时按顺序递增(例如,Delta>=5),否则保持不变,并在每次遇到新组(本例中的ID)时将其重置为1。下面是一个数据here示例:

代码语言:javascript
复制
from pandas import *
d={'rx': [1,1,1,1,1,2,2,2,2,2],
    'vals': [1,2,3,8,10,1,10,20,21,22]}
df=DataFrame(d)


def diff_func(df):
    return df.diff()                                

df['delta'] = df.groupby(['rx'])['vals'].apply(diff_func)  

它产生了这样的结果:

代码语言:javascript
复制
rx  vals delta
1   1    NaN
1   2    1
1   3    1
1   8    5
1   10   2
2   1    NaN
2   10   9
2   20   10
2   21   1
2   22   1

因此,现在我想创建一个名为“Event”的新列,稍后我将使用该列对rx的每个值中的观察进行分组,该值由一个增量<5隔开:

代码语言:javascript
复制
rx  vals    delta   Event
1   1       NaN     1
1   2       1       1
1   3       1       1
1   8       5       2
1   10      2       2
2   1       NaN     1
2   10      9       2
2   20      10      3
2   21      1       3
2   22      1       3

注意,在rx的第一次出现时,“event”返回到1。我习惯于在vbasic或SAS中这样做,您只需保留一个值,然后在每次满足阈值触发器时增加1。在Python中有类似的简单解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-28 21:47:56

通常的方法是做一个比较,然后是一个累积和。例如,类似于:

代码语言:javascript
复制
>>> df["Event"] = (df["delta"] >= 5).groupby(df["rx"]).cumsum() + 1
>>> df
   rx  vals  delta  Event
0   1     1    NaN      1
1   1     2      1      1
2   1     3      1      1
3   1     8      5      2
4   1    10      2      2
5   2     1    NaN      1
6   2    10      9      2
7   2    20     10      3
8   2    21      1      3
9   2    22      1      3

这是因为(为简单起见忽略groupby,只专注于rx == 1:) False == 0True == 1

代码语言:javascript
复制
>>> df["delta"]
0   NaN
1     1
2     1
3     5
4     2
Name: delta, dtype: float64
>>> df["delta"] >= 5
0    False
1    False
2    False
3     True
4    False
Name: delta, dtype: bool
>>> (df["delta"] >= 5).cumsum()
0    0
1    0
2    0
3    1
4    1
Name: delta, dtype: int64
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28202870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档