如何统计DataFrame每行中job/edu类非空列数量?需新增统计列
解决方案
1. 统计每行非空的job{i}_start_year列数量
先筛选出所有列名包含job且以_start_year结尾的列,再对每行统计非空值的数量,将结果存入新列(示例列名:job_non_empty_count):
# 筛选job相关的年份列 job_year_cols = [col for col in df.columns if 'job' in col and col.endswith('_start_year')] # 添加统计列 df['job_non_empty_count'] = df[job_year_cols].count(axis=1)
2. 统计每行非空的edu{i}_start_year列数量
遵循相同逻辑,筛选edu相关年份列后完成统计:
# 筛选edu相关的年份列 edu_year_cols = [col for col in df.columns if 'edu' in col and col.endswith('_start_year')] # 添加统计列 df['edu_non_empty_count'] = df[edu_year_cols].count(axis=1)
补充说明
count(axis=1)会自动忽略每行的空值(NaN),直接返回每行非空值的数量,完全匹配需求。- 如果你的列名规则和示例一致(如
job1_start_year、edu2_start_year这类格式),上述代码可直接复用;若列名有细微差异,只需调整列表推导式里的筛选条件即可。
内容的提问来源于stack exchange,提问作者Julieta M.
相关产品推荐
相关产品推荐

