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

基于DataFrame列标识符统计att与brand组合计数的实现方法

Pandas 实现方案

你的列名遵循q1_{att编号}_{brand编号}的规则,核心处理逻辑是拆分列名提取att、brand两个维度,再对非空计数结果做结构重塑,具体实现代码如下:

  • 步骤1:构造示例测试数据(如果是你自己的真实数据可跳过这一步)
import pandas as pd
import numpy as np

# 模拟你给出的示例数据
df = pd.DataFrame({
    'id': [1,2,3,4,5],
    'q1_1_1': [1, np.nan, 1, 1, 1],
    'q1_1_2': [1, 1, np.nan, np.nan, np.nan],
    'q1_2_1': [1, 1, np.nan, 1, 1],
    'q1_2_2': [1, 1, 1, 1, 1]
})
  • 步骤2:统计非空值+拆分列名提取维度
# 排除id列,统计所有业务列的非空值数量
col_count = df.drop(columns=['id']).count()

# 拆分列名,生成att、brand两层索引
col_count.index = col_count.index.str.split('_', expand=True).rename(['prefix', 'att', 'brand'])

# 给att、brand值加前缀,和预期输出格式对齐
col_count = col_count.rename(
    lambda x: f'att{x}', level='att'
).rename(
    lambda x: f'brand{x}', level='brand'
).droplevel('prefix')
  • 步骤3:重塑为目标结构
# 将brand维度从行索引转为列索引
result = col_count.unstack(level='brand')

执行后result的输出和你预期的完全一致:

brand  brand1  brand2
att                  
att1        4       2
att2        4       5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:45:01