Python 在pandas中使用apply迭代后缀

Python 在pandas中使用apply迭代后缀,python,pandas,Python,Pandas,我试图使用Pandas中的apply函数和lambda来创建命名值 我有TIME列,我想要ACT\u NUM列,如下所示 df TIME ACT_NUM 3 act_1 3 act_1 4 act_1 12 act_2 3 act_2 15 act_3 所需列的逻辑:当时间列中的值大于10时,我希望将后缀数永久地增加1 我尝试过这个方法,但它不起作用,因为在使用apply时,我无法将变量n逐行集成 n = 1 df['A

我试图使用Pandas中的apply函数和lambda来创建命名值

我有
TIME
列,我想要
ACT\u NUM
列,如下所示

df
TIME    ACT_NUM
3       act_1
3       act_1
4       act_1
12      act_2
3       act_2
15      act_3
所需列的逻辑:当时间列中的值大于10时,我希望将后缀数永久地增加1

我尝试过这个方法,但它不起作用,因为在使用
apply
时,我无法将变量
n
逐行集成

n = 1
df['ACT_NUM'] = df['TIME'].apply(lambda x: 'act_'+(n+1) if x>10 else 'act_'+n)
只需使用
str(n+1)
str(n)
将数字转换为字符串:

df['ACT_NUM'] = df['TIME'].apply(lambda x: 'act_'+str(n+1) if x>10 else 'act_'+str(n))
df[“TIME”]>10上,您似乎正在寻找。每当遇到
df[“TIME”]>10的行时,总和从0开始,并增加1

代码

df["ACT_NUM"] = (df["TIME"] > 10).cumsum().apply(lambda el: f"act_{el + 1}")
结果

print(df)
   TIME ACT_NUM
0     3   act_1
1     3   act_1
2     4   act_1
3    12   act_2
4     3   act_2
5    15   act_3

@比尔黄。预期的输出是“ACT_NUM”列。很抱歉弄得一团糟,我刚把它清理干净。我是这个网站的新手,没有一个显示DataFrame的好方法,格式还可以。但是你可以编辑这篇文章来展示你所拥有的和你想要的吗?此外,IIRC,最后一行不是应该是第15幕吗?