代码之家  ›  专栏  ›  技术社区  ›  Atiqul Islam

对pandas数据帧行中的非空单元格进行计数,并将计数添加为列

  •  3
  • Atiqul Islam  · 技术社区  · 6 年前

    使用Python, 我想计算一行中包含数据的单元格数 在它的pandas数据框中 并在该行最左侧的单元格中记录计数 .

    Frame showing count column on left as requested

    1 回复  |  直到 6 年前
        1
  •  7
  •   Keith Dowd    6 年前

    要计算每行中缺少数据的单元格数,可能需要执行以下操作:

    df.apply(lambda x: x.isnull().sum(), axis='columns')
    

    代替 df 使用数据框的标签。

    您可以创建一个新列,并使用以下方法将计数写入其中:

    df['MISSING'] = df.apply(lambda x: x.isnull().sum(), axis='columns')
    

    该列将在数据框的末尾(最右侧)创建。

    可以按如下方式移动列:

    df = df[['Count', 'M', 'A', 'B', 'C']]
    

    使现代化

    我想知道你丢失的单元格是否是空字符串,而不是 NaN 价值观你能确认一下吗?我将您的屏幕截图复制到Excel工作簿中。我的完整代码如下:

    df = pd.read_excel('count.xlsx', na_values=['', ' '])
    df.head() # You should see NaN for empty cells
    df['M']=df.apply(lambda x: x.isnull().sum(), axis='columns')
    df.head() # Column M should report the values: first row: 0, second row: 1, third row: 2
    df = df[['Count', 'M', 'A', 'B', 'C']]
    df.head() # Column order should be Count, M, A, B, C
    

    请注意 na_values 中的参数 pd.read_excel 方法