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

Pandas统计DataFrame同后缀F/L列均非缺失的组数量实现方法

Pandas 按共同后缀配对列统计非空组数量实现方案

实现思路

你现有代码的问题是单独统计了所有F、L列的非空值个数,没有按相同后缀的F列+L列配对判断。正确逻辑是按后缀数字将F<x>和L<x>列为一组,只有同组两个列都不为NaN时才计入统计。

代码实现

方法1:向量化运算(性能更优,适合大数据量)

import pandas as pd

# 动态提取所有F/L列的后缀数字
suffix_list = list(set([col[1:] for col in df.columns if col.startswith(('F', 'L'))]))
# 按组统计符合条件的数量,布尔值True对应1、False对应0,直接求和即可得到计数
df['Cnt'] = sum([df[f'F{s}'].notna() & df[f'L{s}'].notna() for s in suffix_list])

方法2:行遍历(逻辑更直观,适合小数据量)

def count_valid_pair(row):
    count = 0
    # 后缀可按实际范围调整,也可以用方法1的动态提取逻辑
    for s in ['1','2','3']:
        if pd.notna(row[f'F{s}']) and pd.notna(row[f'L{s}']):
            count +=1
    return count

df['Cnt'] = df.apply(count_valid_pair, axis=1)

输出验证

运行上述代码后,输出结果和预期完全一致:

Col1F1L1F2L2F3L3Cnt
AJonRoNaNNaNNaNNaN1
BKossLonPetGrossNaNNaN2
CLoPhoNaNNaNNaNNaN1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:06:04