以下是数据集:
>>> df = pd.DataFrame({'id_police':['p123','p123','p123','b123','b123'],
'date':['24/01/2017','24/11/2017','25/02/2018','24/02/2018','24/03/2018'],
'prime':[0,0,10,20,30],
'prime2':[0,30,10,20,0],
})
###
id_police date prime prime2
0 p123 24/01/2017 0 0
1 p123 24/11/2017 0 30
2 p123 25/02/2018 10 10
3 b123 24/02/2018 20 20
4 b123 24/03/2018 30 0
这是我在使用@Erfan的工作溶液时得到的结果:
id_police date prime prime2 changed
0 p123 24/01/2017 0 0<- 0
1 p123 24/11/2017 0<- 30<- 1
2 p123 25/02/2018 10<- 10 1
3 b123 24/02/2018 20 20 0
4 b123 24/03/2018 30 0 0
命令:
df['changed'] = (df[['prime', 'prime2']].shift().eq(0).any(axis=1) & df[['prime', 'prime2']].ne(0).any(axis=1)).astype(int)
现在我想对每个id_police
应用这个,比如添加一个groupby或者其他什么。。。谢谢你的帮助!你知道吗
根据你的命令:
使用
groupby
和apply
对每个组应用函数。并设置sort=False
,使其与主df的顺序相同。你知道吗我们可以访问
groupby object
中的groupid和groups,然后在每次迭代中生成changed
列:这就产生了
如果要关闭
SetCopyWarning
,请使用以下命令:相关问题 更多 >
编程相关推荐