我希望主题是有道理的。我使用了以下代码来获取“任务分钟”#39;总计并创建一个新的df,工作正常:
>> df1 = df.groupby(['USER','Task'])['Task Minutes'].sum().reset_index(name='Total Task Min')
>> df1
USER Task Total Task Min
0 USER1 TASK1 48.00
1 USER1 TASK2 139.00
2 USER1 TASK3 86.00
我现在要做的是,用户'用户'组df1和'任务'并总结分钟,所以它看起来像这样或类似的东西得到每个用户的小计:
USER Task Total Task Min
USER1 TASK1 48.00
TASK2 139.00
TASK3 86.00
Total 273.00
我无法到达那里。我从逻辑上思考它会是这样的:
df2 = df1.groupby(['USER'])['Total Task Min'].sum()
...但这会导致错误:
TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'
答案 0 :(得分:0)
这个怎么样:
pd.pivot_table(df1, values=['Total Task Min'], index=['USER'],
columns=['Task'], aggfunc=np.sum, margins=True).stack('Task')
Out[75]:
Total Task Min
USER Task
USER1 All 273
TASK1 48
TASK2 139
TASK3 86
All All 273
TASK1 48
TASK2 139
TASK3 86