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

如何在dplyr中根据多列参与者数据创建新统计变量?

统计参与者总活动参与次数的最优实现方法

用Python的pandas库处理这类结构化数据集是效率最高的方案,具体步骤如下:

  1. 导入依赖库
import pandas as pd
  1. 加载或构造数据集
    如果是本地已有数据,直接用pd.read_csv()等方法读取;针对你给出的示例数据,构造代码如下:
data = {
    'Series': [1, 2, 3],
    'event_1': ['Bill', 'Will', 'Stormy'],
    'event_2': ['Alicia', 'Stormy', 'Dave'],
    'event_3': ['Alicia', 'Bill', 'Sally'],
    'event_4': ['Bill', 'Dob', 'Denise'],
    'event_5': ['Denise', 'June', 'Alicia'],
    'event_6': ['Bill', 'Denise', 'April']
}
df = pd.DataFrame(data)
  1. 提取所有活动列并统计参与次数
    用filter自动匹配所有以event_开头的列,再通过stack()把多列的参与者数据扁平化,最后用value_counts()统计总次数:
# 提取所有活动列
event_columns = df.filter(like='event_')
# 统计每个参与者的总参与次数
participant_total_counts = event_columns.stack().value_counts()

运行后,打印participant_total_counts就能得到结果:

Bill      4
Alicia    3
Denise    3
Stormy    2
Will      1
Dob       1
June      1
Dave      1
Sally     1
April     1
dtype: int64
  1. 可选:将统计结果合并回原数据集
    如果需要在原表格里直接显示每个参与者的总次数,可以用applymap批量替换单元格内容:
df[event_columns.columns] = event_columns.applymap(lambda name: f"{name} ({participant_total_counts[name]})")

处理后的数据集会变成:

Series    event_1      event_2      event_3      event_4      event_5      event_6
0       1  Bill (4)  Alicia (3)  Alicia (3)  Bill (4)  Denise (3)  Bill (4)
1       2  Will (1)  Stormy (2)  Bill (4)  Dob (1)  June (1)  Denise (3)
2       3  Stormy (2)  Dave (1)  Sally (1)  Denise (3)  Alicia (3)  April (1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:30:09