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

如何使用Pandas按条件排除指定列并针对作答用户计算各调研问题选项的平均值

解决Pandas批量计算调研问题选项平均值(排除跳过客户)的方案

我来帮你搞定这个批量处理的需求,完全适配你有数百个调研问题的场景,不用手动一个个处理每个问题。下面是具体的实现步骤和代码:

1. 先构造原始数据(方便复现)

首先咱们先把你给出的原始DataFrame用代码构造出来:

import pandas as pd

data = {
    'Customer_id': ['asdsd', 'aasww', 'aaswe', 'aaswt'],
    'q1_a': [0, 1, 0, 0],
    'q1_b': [0, 0, 1, 1],
    'q1_0': [1, 0, 0, 0],
    'q2_a': [0, 0, 0, 1],
    'q2_b': [0, 1, 0, 0],
    'q2_c': [1, 0, 0, 0],
    'q2_0': [0, 0, 1, 0]
}
df = pd.DataFrame(data)

2. 核心实现思路

咱们的核心需求是每个问题单独计算平均值,只统计没有跳过该问题的客户,所以步骤是:

  • 自动识别所有调研问题的前缀(比如q1、q2,不管有多少个)
  • 对每个问题,筛选出没有跳过的客户(对应问题_0列值为0的行)
  • 计算该问题下所有选项列的平均值,最后把所有平均值整合成一行添加到原DataFrame末尾
  • 同时去掉原DataFrame中的_0列,只保留有效选项列

3. 完整代码实现

# 第一步:提取所有唯一的问题前缀(比如q1、q2)
question_prefixes = list({col.split('_')[0] for col in df.columns if col != 'Customer_id'})
# 排序一下,保证顺序和原列一致(可选)
question_prefixes.sort()

# 第二步:初始化一个字典来存储每个选项的平均值
avg_dict = {'Customer_id': 'AVERAGE'}

# 第三步:循环处理每个问题
for prefix in question_prefixes:
    # 获取当前问题的所有列(包括_0列)
    question_cols = [col for col in df.columns if col.startswith(prefix)]
    # 获取没有跳过该问题的客户行(_0列值为0)
    answered_rows = df[df[f'{prefix}_0'] == 0]
    # 获取当前问题的选项列(排除_0列)
    option_cols = [col for col in question_cols if not col.endswith('_0')]
    # 计算每个选项的平均值,转成百分比并保留一位小数
    for col in option_cols:
        avg = answered_rows[col].mean() * 100
        avg_dict[col] = f'{avg:.1f}%'

# 第四步:处理原DataFrame,去掉所有_0列
clean_df = df.drop(columns=[col for col in df.columns if col.endswith('_0')])
# 把平均值行添加到DataFrame末尾
result_df = pd.concat([clean_df, pd.DataFrame([avg_dict])], ignore_index=True)

# 查看结果
print(result_df)

4. 输出结果验证

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

Customer_id q1_a q1_b q2_a q2_b q2_c
0       asdsd    0    0    0    0    1
1       aasww    1    0    0    1    0
2       aaswe    0    1    0    0    0
3       aaswt    0    1    1    0    0
4      AVERAGE 33.3% 66.7% 33.3% 33.3% 33.3%

5. 批量适配说明

这个方案完全支持数百个问题的场景,只要你的列名符合问题前缀_选项和问题前缀_0的格式,代码会自动识别所有问题并批量处理,不需要修改任何逻辑,非常省心。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 20:17:44