如何解决类似于 Excel 的 Pandas 小计
我有以下数据框 df
:
A B C
0 21 Blue 100
1 33 Yellow 100
2 17 White 250
3 A2 Grey 40
4 65 Green 500
5 33 Red 80
6 17 Purple -50
7 A2 Orange 600
B 列基本上是不相关的信息 IRT 代码本身,但仍需要包含在输出中。 我已经按列 A 对数据框进行了排序,并解决了 col A 包含 int 和 str 的问题:
df['A'] = df['A'].astype(str)
df_sorted = df.sort_values(by=['A'])
所以现在 df_sorted
看起来像这样:
A B C
2 17 White 250
6 17 Purple -50
0 21 Blue 100
1 33 Yellow 100
5 33 Red 80
4 65 Green 500
3 A2 Grey 40
7 A2 Orange 600
我的问题是:如何通过总结类似于 Excel 的小计函数的 col C 来为 col A 中的每个更改进行小计? 数据帧的最终输出应如下所示:
A B C
2 17 White 250
6 17 Purple -50
Subtotal 200
0 21 Blue 100
Subtotal 100
1 33 Yellow 100
5 33 Red 80
Subtotal 180
4 65 Green 500
Subtotal 500
3 A2 Grey 40
7 A2 Orange 600
Subtotal 640
解决方法
您可以concat
您的原始 df 和 groupby 小计。
df1 = pd.concat([df,df.groupby(['A'],as_index=False)['C'].sum()]).sort_values('A')
df1.loc[df1['B'].isnull(),'A'] = 'Subtotal'
print(df1.fillna(''))
A B C
2 17 White 250
6 17 Purple -50
0 Subtotal 200
0 21 Blue 100
1 Subtotal 100
1 33 Yellow 100
5 33 Red 80
2 Subtotal 180
4 65 Green 500
3 Subtotal 500
3 A2 Grey 40
7 A2 Orange 600
4 Subtotal 640
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。