2 回答

TA贡献1862条经验 获得超7个赞
尝试groupby.sum并unstack
df_final = df.groupby(['Name', 'Activity']).Hour.sum().unstack(fill_value=0)
Out[177]:
Activity TT UU
Name
A 7 5
B 1 0
C 1 0
D 3 7

TA贡献1877条经验 获得超1个赞
Apivot_table也可以在这里工作:
df = pd.pivot_table(df, index='Name', columns='Activity', values='Hour', aggfunc='sum', fill_value=0)
df
Out[1]:
Activity TT UU
Name
A 7 5
B 1 0
C 1 0
D 3 7
从那里,您可以进行一些进一步的清理以达到:
df.columns = [''.join(col) for col in df.columns]
df = df.reset_index()
df
Out[2]:
Name TT UU
0 A 7 5
1 B 1 0
2 C 1 0
3 D 3 7
添加回答
举报