質問編集履歴

4

add answer

2017/08/03 05:24

投稿

tf23yh8df3
tf23yh8df3

スコア60

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,36 @@
1
1
  ### 以下のようなテーブルを年度をカラムにした形で整形したい
2
2
 
3
3
 
4
+
5
+ ### 解決策
6
+
7
+
8
+
9
+ ```python
10
+
11
+ import pandas as pd
12
+
13
+
14
+
15
+ df = pd.DataFrame({'YMD':[2012,2012,2013,2014,2014],
16
+
17
+ 'ITEM_CD':['0001','0002','0003','0001','0003'],
18
+
19
+ 'SALES':[100,200,300,200,400]})
20
+
21
+
22
+
23
+ # MultiIndex の解除
24
+
25
+ df2 = df.reset_index(drop=False)
26
+
27
+
28
+
29
+ # NaN を 0 で置換
30
+
31
+ df2.pivot(index='ITEM_CD', columns='YMD', values='SALES').fillna(0)
32
+
33
+ ```
4
34
 
5
35
 
6
36
 
@@ -46,4 +76,4 @@
46
76
 
47
77
  | 0002 | 200 | 0 | 0 |
48
78
 
49
- | 0003 | 0 | 300 | 400 |
79
+ | 0003 | 0 | 300 | 400 |l

3

add tag

2017/08/03 05:24

投稿

tf23yh8df3
tf23yh8df3

スコア60

test CHANGED
@@ -1 +1 @@
1
- MultiIndex から Index と 行 に分ける方法について
1
+ MultiIndex から Index と 行 に分ける方法について (行列置換)
test CHANGED
File without changes

2

change title

2017/08/03 05:06

投稿

tf23yh8df3
tf23yh8df3

スコア60

test CHANGED
@@ -1 +1 @@
1
- pandas/MultiIndex の扱い (列置換や整形) について
1
+ MultiIndex から Index と 行 に分ける方法について
test CHANGED
File without changes

1

add info

2017/08/03 05:05

投稿

tf23yh8df3
tf23yh8df3

スコア60

test CHANGED
File without changes
test CHANGED
@@ -6,36 +6,44 @@
6
6
 
7
7
  ##### (現状)
8
8
 
9
- | | | SALES |
9
+ - `YMD` `ITEM_CD` MultiIndex を設定している状態
10
10
 
11
- | :---: | :---: | :---: |
12
11
 
13
- | YMD | ITEM_CD | |
14
12
 
15
- | 2012 | 0001 | 100 |
13
+ | | | SALES |
16
14
 
17
- | | 0002 | 200 |
15
+ | :---: | :---: | :---: |
18
16
 
19
- | 2013 | 0003 | 300 |
17
+ | **YMD** | **ITEM_CD** | |
20
18
 
21
- | 2014 | 0001 | 200 |
19
+ | 2012 | 0001 | 100 |
22
20
 
21
+ | | 0002 | 200 |
22
+
23
+ | 2013 | 0003 | 300 |
24
+
25
+ | 2014 | 0001 | 200 |
26
+
23
- | | 0003 | 400 |
27
+ | | 0003 | 400 |
28
+
29
+
24
30
 
25
31
 
26
32
 
27
33
  ##### (理想)
28
34
 
35
+ - `ITEM_CD` を Index に設定
29
36
 
30
37
 
31
- | | 2012 | 2013 | 2014 |
32
38
 
33
- | :---: | :---: | :---: | :---: |
39
+ | | 2012 | 2013 | 2014 |
34
40
 
35
- | ITEM_CD | | | |
41
+ | :---: | :---: | :---: | :---: |
36
42
 
37
- | 0001 | 100 | 0 | 400 |
43
+ | **ITEM_CD** | | | |
38
44
 
39
- | 0002 | 200 | 0 | 0 |
45
+ | 0001 | 100 | 0 | 400 |
40
46
 
47
+ | 0002 | 200 | 0 | 0 |
48
+
41
- | 0003 | 0 | 300 | 400 |
49
+ | 0003 | 0 | 300 | 400 |