使用如下所示的简化的学生样本数据:
Date | Loc | SID | Test | Score
----------------------------------------------
2018-03-01 L1 S1 T1 3
2018-03-01 L1 S1 T1 5
2018-03-01 L2 S3 T1 3
2018-03-03 L2 S3 T2 4
2018-03-03 L1 S2 T1 1
2018-03-03 L1 S1 T2 5
2018-03-03 L1 S1 T1 4
2018-03-03 L1 S2 T3 7
2018-03-03 L2 S1 T1 5
2018-03-05 L1 S2 T2 3
2018-03-05 L2 S1 T1 1
2018-03-05 L1 S3 T2 5
2018-03-05 L1 S2 T1 8
2018-03-05 L1 S1 T1 6
2018-03-05 L2 S1 T1 3
2018-03-05 L2 S3 T3 5
2018-03-08 L2 S2 T2 4
2018-03-08 L2 S1 T2 2
2018-03-09 L1 S3 T1 6
2018-03-09 L2 S3 T1 5
2018-03-09 L1 S1 T3 8
2018-03-09 L1 S1 T3 6
2018-03-11 L1 S3 T2 6
2018-03-11 L2 S3 T1 9
2018-03-11 L1 S3 T2 3
2018-03-11 L1 S1 T1 5
2018-03-11 L2 S1 T1 4
2018-03-11 L1 S1 T3 9
2018-03-14 L2 S2 T1 3
2018-03-14 L1 S2 T1 3
想分组(定位,SID,测试)并基于每周的重新采样来计算平均得分和加权平均得分,因此看起来像以下内容(不完整,仅显示第1周):
| # Times Test Taken | Avg. Score | Wgtd Avg. Score
------------|------------------------------------------------------
Week 1| L1 S1 T1 | 4 | 4.50 |
T2 | 1 | 5.00 |
S2 T1 | 2 | 4.50 |
T2 | 1 | 3.00 |
T3 | 1 | 7.00 |
S3 T2 | 1 | 5.00 |
L2 S1 T1 | 3 | 3.00 |
S3 T1 | 1 | 4.00
到目前为止,我已经:
import pandas as pd
df = pd.read_csv(TheData)
df2 = df.copy()
df2.Date = pd.to_datetime(df2.Date)
df2.set_index('Date', inplace=True)
df3 = df2.copy()
df3.groupby(['Loc', 'SID', 'Test']).resample('W')['Score'].count()
# df3.groupby(['Loc', 'SID', 'Test']).resample('W').count()
df3.groupby(['Loc', 'SID', 'Test']).resample('W').mean()
我认为我拥有“#次考试时间”和“平均得分”的正确信息。如何将这些信息输入到同一数据框的新列中?
对于加权平均。分数,我愿意就如何计算分数提出建议,以便它可以反映与分数有关的测试类型(T1-T3)中的差异。我什至不确定我是否正在以正确的方式考虑这个指标。
随着我的进步,将继续更新。任何反馈,不胜感激。