特征生成-基于某些列值进行聚合



Im使用python分析和处理数据集。我目前正在生成功能,但需要一些专业知识。

数据显示了受训人员完成的任务。任务可以是简单的,也可以是艰巨的。受训人员可以协助或全面完成任务。

我想了解每个受训者如何完成每一个难度,但到目前为止还没有达到要求。

下面是一个数据样本&我努力实现的成果。非常感谢使用python获得这些聚合的帮助。

csv格式的原始数据链接在这里

Source Data
Name    Task    Difficulty  Involvment  Score
Jim     A1      Easy        Full        80
Jim     A2      Hard        Assist      40
Jim     B6      Easy        Full        10
Jim     D12      Hard       Assist      40
Ann     B6      Easy        Full        70
Ann     A2      Hard        Assist      20
Ann     C7      Hard        Assist      20
Ann     D12      Hard       Full        80
Joe     A2      Hard        Assist      40

Required Output format
Name    OverallScore    CountEasyAssist CountEasyFull   CountHardAssist CountHardFull
Jim     160             0                2                2                0
Ann     190             0                1                2                1
Joe     40              0                0                1                0

您可以尝试使用pd.crosstab,尽管这显然无法对sample.csv中没有计数的列进行聚合,例如列CountEasyAssist

import pandas as pd
df = pd.read_csv('sample1.csv')
scores = df.groupby('Name')['Score'].sum().to_frame()
df = pd.crosstab([df.Name], [df.Involvment, df.Difficulty])
df = scores.join(df)
df.columns = ['OverallScore', 'CountHardAssist', 'CountEasyFull', 'CountHardFull']

最新更新