回答編集履歴

2

サンプル追加

2019/05/16 07:17

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -1,3 +1,91 @@
1
1
  ``df.groupby('race').apply(lambda d: d[['馬番','能力1','能力2','着順(y)']].stack().reset_index(level=0, drop=True))``
2
2
 
3
3
  でどうでしょうか。
4
+
5
+
6
+
7
+ ```Python
8
+
9
+ import pandas as pd
10
+
11
+ import io
12
+
13
+
14
+
15
+ data = """
16
+
17
+ race,馬番,能力1,能力2,着順(y)
18
+
19
+ 1,1,0.112115797,0.980271793,0.5
20
+
21
+ 1,2,0.10156389,0.15123039,0.25
22
+
23
+ 1,3,0.141461107,0.889222429,0.75
24
+
25
+ 1,4,0.364152658,0.504141353,1
26
+
27
+ 2,1,0.232178085,0.811654683,0.25
28
+
29
+ 2,2,0.490554328,0.271948642,0.75
30
+
31
+ 2,3,0.912273302,0.545971675,1
32
+
33
+ 2,4,0.306427195,0.219543843,0.5
34
+
35
+ 3,1,0.84874005,0.225376628,0.75
36
+
37
+ 3,2,0.980524014,0.518634533,1
38
+
39
+ 3,3,0.793379468,0.707376409,0.5
40
+
41
+ 3,4,0.337912623,0.340699924,0.25
42
+
43
+ 4,1,0.865030143,0.54997774,1
44
+
45
+ 4,2,0.743468075,0.717770634,0.75
46
+
47
+ 4,3,0.175989149,0.219996247,0.5
48
+
49
+ 4,4,0.032296776,0.140063011,0.25
50
+
51
+ 5,1,0.108151134,0.01417521,0.25
52
+
53
+ 5,2,0.812937171,0.969057406,0.75
54
+
55
+ 5,3,0.869512736,0.196469624,1
56
+
57
+ 5,4,0.380255494,0.544955296,0.5
58
+
59
+ 6,1,0.265640962,0.367447423,0.25
60
+
61
+ 6,2,0.606604272,0.149497873,0.5
62
+
63
+ 6,3,0.748067103,0.704372874,0.75
64
+
65
+ 6,4,0.896956794,0.22287917,1
66
+
67
+ """
68
+
69
+
70
+
71
+ df = pd.read_csv(io.StringIO(data))
72
+
73
+ ret = df.groupby('race').apply(lambda d: d[['馬番','能力1','能力2','着順(y)']].stack().reset_index(level=0, drop=True))
74
+
75
+ # 馬番 能力1 能力2 着順(y) 馬番 ... 着順(y) 馬番 能力1 能力2 着順(y)
76
+
77
+ #race ...
78
+
79
+ #1 1.0 0.112116 0.980272 0.50 2.0 ... 0.75 4.0 0.364153 0.504141 1.00
80
+
81
+ #2 1.0 0.232178 0.811655 0.25 2.0 ... 1.00 4.0 0.306427 0.219544 0.50
82
+
83
+ #3 1.0 0.848740 0.225377 0.75 2.0 ... 0.50 4.0 0.337913 0.340700 0.25
84
+
85
+ #4 1.0 0.865030 0.549978 1.00 2.0 ... 0.50 4.0 0.032297 0.140063 0.25
86
+
87
+ #5 1.0 0.108151 0.014175 0.25 2.0 ... 1.00 4.0 0.380255 0.544955 0.50
88
+
89
+ #6 1.0 0.265641 0.367447 0.25 2.0 ... 0.75 4.0 0.896957 0.222879 1.00
90
+
91
+ ```

1

ちょっと修正

2019/05/16 07:16

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -1,3 +1,3 @@
1
- ``df.groupby('race').apply(lambda d: d[['馬番','能力','能力','着順(y)']].stack().reset_index(level=0, drop=True))``
1
+ ``df.groupby('race').apply(lambda d: d[['馬番','能力1','能力2','着順(y)']].stack().reset_index(level=0, drop=True))``
2
2
 
3
3
  でどうでしょうか。