You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pandas DataFrame每行非空列数生成新列的实现方案

在Pandas DataFrame中统计每行非空列的数量并新增列

嘿,这需求太常见了,用Pandas几步就能搞定!针对你给出的示例场景,我直接上可运行的代码,再给你拆解逻辑:

首先,咱们先重现你提供的示例DataFrame:

import pandas as pd

df = pd.DataFrame({
    'ID':['1','2','3'], 
    'J1': ['a','ab',''],
    'J2':['22','','33']
})

接下来就是核心操作——新增统计列。这里咱们用ne('')来识别非空字符串,再按行求和:

# 新增Count_of_cols_have_values列,统计每行非空列的数量
df['Count_of_cols_have_values'] = df.ne('').sum(axis=1)

运行完之后,你打印df就能得到期望的结果:

ID  J1  J2  Count_of_cols_have_values
0  1   a  22                          2
1  2  ab                              1
2  3      33                          1

逻辑拆解

  • df.ne(''):生成一个布尔值DataFrame,每个单元格如果不是空字符串就返回True(等价于1),否则返回False(等价于0)
  • .sum(axis=1):指定按行(axis=1)对布尔值求和,得到的就是每行非空列的数量

额外补充

如果你的DataFrame里存在的是NaN(而不是空字符串)类型的缺失值,那可以把ne('')换成notna(),代码改成:

df['Count_of_cols_have_values'] = df.notna().sum(axis=1)

这样就能兼容两种缺失值场景啦~

内容的提问来源于stack exchange,提问作者Jithendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:25:25