根据行值对Pandas中的列求和

时间:2019-03-02 20:29:29

标签: python pandas

我正在尝试设置一个脚本来帮助订购空白服装。我有一个看起来像这样的数据集:

|  design  | s | m | l | xl | style   | color |
|----------|---|---|---|----|---------|-------|
| design 1 | 5 | 3 | 6 |  1 | style 1 | black |
| design 2 | 4 | 6 | 9 |  5 | style 2 | red   |
| design 3 | 2 | 6 | 5 |  8 | style 1 | red   |
| design 4 | 6 | 8 | 4 |  1 | style 1 | black |
| design 5 | 8 | 2 | 1 |  1 | style 1 | blue  |
| design 6 | 6 | 9 | 5 |  4 | style 2 | red   |

我希望能够使用Pandas来对每种样式/颜色对的总数进行总计,以便可以对总数进行排序。

鉴于上述数据,我希望输出为:

| style   | color | s  | m  | l  | xl |
|---------|-------|----|----|----|----|
| style 1 | black | 11 | 11 | 10 | 2  | 
| style 1 | red   | 2  | 6  | 5  | 8  |
| style 1 | blue  | 8  | 2  | 1  | 1  |
| style 2 | red   | 10 | 15 | 14 | 9  |

2 个答案:

答案 0 :(得分:0)

df[['style', 'color', 's','m','l','xl']].groupby(by=['style','color']).sum()

如果要按项目排序,可以添加.sort()

答案 1 :(得分:-1)

df.groupby("style").cumsum

groupbycumsum可以满足您的需求。