Python 如何为数据帧行中的每个新分组分配数值?

Python 如何为数据帧行中的每个新分组分配数值?,python,pandas,python-2.7,Python,Pandas,Python 2.7,如果我有一个像这样的熊猫数据框: 0 1 2 3 4 5 1 NaN NaN 1 NaN 1 1 2 1 NaN NaN 1 NaN 1 3 NaN 1 1 NaN 1 1 4 1 1 1 1 1 1 5 NaN NaN NaN NaN NaN NaN 0 1 2 3 4 5 1 NaN NaN 1 NaN 2 2 2 1 NaN NaN

如果我有一个像这样的熊猫数据框:

     0   1   2   3   4   5
 1  NaN NaN  1  NaN  1   1
 2   1  NaN NaN  1  NaN  1
 3  NaN  1   1  NaN  1   1
 4   1   1   1   1   1   1
 5  NaN NaN NaN NaN NaN NaN
     0   1   2   3   4   5
 1  NaN NaN  1  NaN  2   2
 2   1  NaN NaN  2  NaN  3
 3  NaN  1  NaN NaN  2   2
 4   1   1   1   1   1   1
 5  NaN NaN NaN NaN NaN NaN
如何计算每组的数量并根据每行中的组数指定值?这样我就得到了这样一个数据帧:

     0   1   2   3   4   5
 1  NaN NaN  1  NaN  1   1
 2   1  NaN NaN  1  NaN  1
 3  NaN  1   1  NaN  1   1
 4   1   1   1   1   1   1
 5  NaN NaN NaN NaN NaN NaN
     0   1   2   3   4   5
 1  NaN NaN  1  NaN  2   2
 2   1  NaN NaN  2  NaN  3
 3  NaN  1  NaN NaN  2   2
 4   1   1   1   1   1   1
 5  NaN NaN NaN NaN NaN NaN

要找到一个简单的方法有点难

s=df.isnull().cumsum(1) # cumsum get the null 
s=s[df.notnull()].apply(lambda x : pd.factorize(x)[0],1)+1 # then we need assign the groukey 
df=s.mask(s==0)# and mask 0 as NaN 
df
     0    1    2    3    4    5
1  NaN  NaN  1.0  NaN  2.0  2.0
2  1.0  NaN  NaN  2.0  NaN  3.0
3  NaN  1.0  1.0  NaN  2.0  2.0
4  1.0  1.0  1.0  1.0  1.0  1.0
5  NaN  NaN  NaN  NaN  NaN  NaN