我使用python分析和处理数据集。 我目前正在开发功能,但需要一些专业知识。
数据显示受训人员已执行的任务。 任务可以很容易也可以很困难。 学员可以协助或完全完成任务。
我想汇总每个受训者如何解决每个困难,但是到目前为止还无法按要求获得。
下面是数据示例和我试图实现的输出。 非常感谢您使用python获取这些聚合的帮助。
以csv格式指向原始数据的链接为here
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
答案 0 :(得分: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']