Pandas 按行分组计数器
我正在尝试创建一个新的变量,它计算随着时间的推移,同一个id被看到的次数 需要从此数据帧传递Pandas 按行分组计数器,pandas,numpy,pandas-groupby,Pandas,Numpy,Pandas Groupby,我正在尝试创建一个新的变量,它计算随着时间的推移,同一个id被看到的次数 需要从此数据帧传递 id clae6 year quarter 1 475230.0 2007 1 1 475230.0 2007 2 1 475230.0 2007 3
id clae6 year quarter
1 475230.0 2007 1
1 475230.0 2007 2
1 475230.0 2007 3
1 475230.0 2007 4
1 475230.0 2008 1
1 475230.0 2008 2
2 475230.0 2007 1
2 475230.0 2007 2
2 475230.0 2007 3
2 475230.0 2007 4
2 475230.0 2008 1
3 475230.0 2010 1
3 475230.0 2010 2
3 475230.0 2010 3
3 475230.0 2010 4
对此
id clae6 year quarter new_variable
1 475230.0 2007 1 1
1 475230.0 2007 2 2
1 475230.0 2007 3 3
1 475230.0 2007 4 4
1 475230.0 2008 1 5
1 475230.0 2008 2 6
2 475230.0 2007 1 1
2 475230.0 2007 2 2
2 475230.0 2007 3 3
2 475230.0 2007 4 4
2 475230.0 2008 1 5
3 475230.0 2010 1 1
3 475230.0 2010 2 2
3 475230.0 2010 3 3
3 475230.0 2010 4 4
我正在使用以下代码,但可能还有一个更简单的代码(我正在对大量记录进行操作,因此我正在寻找一个更快的代码):
你可以用rank
df['new'] = df.groupby('id').rank(method = 'first').astype(int)
id clae6 year quarter new
0 1 475230.0 2007 1 1
1 1 475230.0 2007 2 2
2 1 475230.0 2007 3 3
3 1 475230.0 2007 4 4
4 1 475230.0 2008 1 5
5 1 475230.0 2008 2 6
6 2 475230.0 2007 1 1
7 2 475230.0 2007 2 2
8 2 475230.0 2007 3 3
9 2 475230.0 2007 4 4
10 2 475230.0 2008 1 5
11 3 475230.0 2010 1 1
12 3 475230.0 2010 2 2
13 3 475230.0 2010 3 3
14 3 475230.0 2010 4 4
你可以用rank
df['new'] = df.groupby('id').rank(method = 'first').astype(int)
id clae6 year quarter new
0 1 475230.0 2007 1 1
1 1 475230.0 2007 2 2
2 1 475230.0 2007 3 3
3 1 475230.0 2007 4 4
4 1 475230.0 2008 1 5
5 1 475230.0 2008 2 6
6 2 475230.0 2007 1 1
7 2 475230.0 2007 2 2
8 2 475230.0 2007 3 3
9 2 475230.0 2007 4 4
10 2 475230.0 2008 1 5
11 3 475230.0 2010 1 1
12 3 475230.0 2010 2 2
13 3 475230.0 2010 3 3
14 3 475230.0 2010 4 4
利用
利用
@LucasDresl yw~:-)是的,对不起,我的朋友,我可以请你帮我回答这个问题吗?我的工作忙得不可开交。“面板数据:企业的过渡矩阵”@LucasDresl它看起来像一个支点problem@LucasDreslyw~:-)是的,对不起,我的孩子。我可以请你帮我回答这个问题吗?我的工作忙得不可开交。“面板数据:企业的过渡矩阵”@LucasDresl这看起来像一个轴心问题
df.groupby('id').cumcount().add(1)
Out[1574]:
0 1
1 2
2 3
3 4
4 5
5 6
6 1
7 2
8 3
9 4
10 5
11 1
12 2
13 3
14 4
dtype: int64