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']