回答編集履歴
1
追記
answer
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
商品の種類が増える可能性があるのであればデータは「縦持ち」のほうがよいです。
|
4
4
|
横持にしたければ`pivot_table`を使えばよいです。
|
5
|
+
|
6
|
+
追記
|
7
|
+
-----
|
8
|
+
たとえば「商品」ではなく「ハンバーガー」「ジュース」などの大まかな商品グループ毎に集計したくなった場合、横持だと大変です。
|
9
|
+
縦持ちなら、集計対象でグルーピングして`pivot_table`するだけですみます。
|
5
10
|
```Python
|
6
11
|
import pandas as pd
|
7
12
|
import numpy as np
|
@@ -27,4 +32,18 @@
|
|
27
32
|
#2020/07/11 0.0 8.0 0.0 10.0 12.0 0.0 30
|
28
33
|
#2020/07/12 1.0 0.0 7.0 9.0 0.0 3.0 20
|
29
34
|
#All 1.0 8.0 7.0 19.0 12.0 3.0 50
|
35
|
+
|
36
|
+
|
37
|
+
# 商品グループ毎に同様の集計を行う
|
38
|
+
|
39
|
+
df['商品グループ'] = df['商品'].str.replace('[A-Z]','')
|
40
|
+
|
41
|
+
df2 = pd.pivot_table(df, index='日付', columns='商品グループ', values='個数', margins=True, aggfunc=np.sum)
|
42
|
+
df2 = df2.fillna(0)
|
43
|
+
print(df2)
|
44
|
+
#商品グループ デザート ドリンク バーガー All
|
45
|
+
#日付
|
46
|
+
#2020/07/11 0.0 8.0 22.0 30
|
47
|
+
#2020/07/12 1.0 7.0 12.0 20
|
48
|
+
#All 1.0 15.0 34.0 50
|
30
49
|
```
|