Python 计算大熊猫中空单元格之间的填充单元格数

Python 计算大熊猫中空单元格之间的填充单元格数,python,pandas,Python,Pandas,下面是我的数据帧的一部分示例: col1 col2 items1 10 items1 5 items1 3 items1 2 items1 NaN items1 NaN items1 NaN items1 4 items1 1 items1 1 items2 6 items2 4 items2 5 items2 NaN items2 NaN items2 2 items2 8

下面是我的数据帧的一部分示例:

col1     col2
items1    10
items1     5
items1     3
items1     2
items1   NaN
items1   NaN
items1   NaN
items1     4
items1     1
items1     1
items2     6
items2     4
items2     5
items2   NaN
items2   NaN
items2     2
items2     8
items2     7
items2     9
items2   NaN
...
我需要为列
col1
中的每个唯一值计算空单元格之间的非空单元格数。我尝试使用
groupby()
col1
中的唯一值进行分组,并使用
count()
对值进行计数,但它对
col1
中唯一值的所有非空值进行计数

这是我的密码:

df = pd.DataFrame({'col1':('items1','items1','items1','items1','items1','items1','items1','items1','items1','items1','items2','items2','items2','items2','items2','items2','items2','items2','items2','items2'),
                  'col2': (10, 5, 3, 2, np.nan, np.nan, np.nan, 4, 1, 1, 6, 4, 5, np.nan, np.nan, 2, 8, 7, 9, np.nan)})
df.groupby('col1')['col2'].count().reset_index()
结果如下所示:

      col1  col2
0   items1     7
1   items2     7
但我需要得到以下信息:

      col1  col2
0   items1     4
1   items1     3
2   items2     3
3   items2     4

如果您有任何建议,我将不胜感激

IIUC,PS:我没有添加
reset\u index()
它会使代码过长

df.groupby([df['col1'],df['col2'].isnull().diff().fillna(0).cumsum()])['col2'].count().replace(0,np.nan).dropna()
Out[885]: 
col1    col2
items1  0       4.0
        2       3.0
items2  2       3.0
        4       4.0
Name: col2, dtype: float64

IIUC,PS:我没有添加
reset\u index()
它会使代码过长

df.groupby([df['col1'],df['col2'].isnull().diff().fillna(0).cumsum()])['col2'].count().replace(0,np.nan).dropna()
Out[885]: 
col1    col2
items1  0       4.0
        2       3.0
items2  2       3.0
        4       4.0
Name: col2, dtype: float64