计算行级别的pandas数据框中的空单元格数,并相应地创建一列

时间:2017-10-18 16:13:09

标签: python pandas

我有一个带有空单元格的数据框,如下所示:

  Col1       Col2      Col3       Col4        Col5       
   A                    B                       C
                                    G            
   E           R                                P
                        J                          
   C           K                                T

我想创建一个额外的列,每行包含空单元格的数量,因此预期的输出是这样的:

 ID     Col1       Col2      Col3       Col4        Col5      No_Of_Empty     
 1       A                    B                       C           2
 2                                        G                       3
 3       E           R                                P           2
 4                            J                                   3
 5       C           K                                T           3

以下是我的尝试:

df['No_Of_Des'] = df.iloc[:,1::].apply(lambda x: sum(x==' '), axis = 1)

我得到的输出并不像预期的那样,我不确定这里有什么问题?

1 个答案:

答案 0 :(得分:2)

来源DF:

In [168]: df
Out[168]:
  Col1 Col2 Col3 Col4 Col5
0    A         B         C
1                   G
2    E    R              P
3              J
4    C    K              T

演示:

In [170]: df.iloc[:, 1:].eq("")
Out[170]:
    Col2   Col3   Col4   Col5
0   True  False   True  False
1   True   True  False   True
2  False   True   True  False
3   True  False   True   True
4  False   True   True  False

In [171]: df.iloc[:, 1:].eq("").sum(axis=1)
Out[171]:
0    2
1    3
2    2
3    3
4    2
dtype: int64

In [172]: df['No_Of_Empty'] = df.iloc[:, 1:].eq("").sum(axis=1)

In [173]: df
Out[173]:
  Col1 Col2 Col3 Col4 Col5  No_Of_Empty
0    A         B         C            2
1                   G                 3
2    E    R              P            2
3              J                      3
4    C    K              T            2