我使用的数据帧有id
、wage
和date
,如下所示:
id wage date
1 100 201212
1 100 201301
1 0 201302
1 0 201303
1 120 201304
1 0 201305
.
2 0 201302
2 0 201303
我想创建一个n_months_no_income
列来计算一个给定的个体已经连续数月wage==0
,如下所示:
id wage date n_months_no_income
1 100 201212 0
1 100 201301 0
1 0 201302 1
1 0 201303 2
1 120 201304 0
1 0 201305 1
. .
2 0 201302 1
2 0 201303 2
我觉得这是groupby('id')
,cumcount()
,也许diff()
或apply()
和fillna(0)
之间的某种混合,但我没有找到合适的。你知道吗
你有什么想法吗?你知道吗
下面是一个数据帧示例,以便于复制:
df = pd.DataFrame({'id':[1,1,1,1,1,1,2,2],'wage':[100,100,0,0,120,0,0,0],
'date':[201212,201301,201302,201303,201304,201305,201302,201303]})
编辑:添加代码以便于使用。你知道吗
在本例中,使用
cumcount
创建两个groupby
,并使用cumsum
创建附加键相关问题 更多 >
编程相关推荐