回答編集履歴

1

Update

2022/02/17 07:02

投稿

melian
melian

スコア19825

test CHANGED
@@ -1,53 +1,74 @@
1
- `df_c.iloc[len(sample)*l + k,:]` とされていますが、`df_c` の行数 `len(sample)` なので、`l > 0` の場合に `out of bounds` エラー発生してしまいます
1
+ > df_cindexはsampleがN回連続しているリスト?で
2
2
 
3
- 最終的結果して何を望んでいるのか不明なのですが、以下の様なモノなのでしょうか?
3
+ そうりますと、以下の様ります。
4
4
 
5
5
  ```python
6
6
  import pandas as pd
7
+ import random
7
8
 
8
9
  sample = ["apple", "orange", "banana", "strawberry", "grape"]
10
+ N = 3
9
- data = [1.2, 2.5, 3.8, 4.6, 5.3]
11
+ data = [random.randint(0, 50) for _ in range(len(sample)*N)]
10
- df_c = pd.DataFrame(data, index = sample)
12
+ df_c = pd.DataFrame(data, index = sample*N)
11
13
 
12
- N = 3
13
14
  dfs = []
14
- for k in range(N):
15
+ for k in range (len(sample)):
15
- df = df_c.iloc[k:k+N,:]
16
+ df = df_c.iloc[[len(sample)*l+k for l in range(N)],:]
16
17
  dfs.append(df)
17
18
 
18
19
  print(f'df_c:\n{df_c}\n')
19
20
  print(f'{len(dfs) = }\n')
21
+ for i in range(len(sample)):
20
- print(f'dfs[0]:\n{dfs[0]}\n')
22
+ print(f'dfs[{i}]:\n{dfs[i]}\n')
21
- print(f'dfs[1]:\n{dfs[1]}\n')
22
- print(f'dfs[2]:\n{dfs[2]}')
23
23
 
24
24
  #
25
25
  df_c:
26
- 0
26
+ 0
27
- apple 1.2
27
+ apple 31
28
- orange 2.5
28
+ orange 15
29
- banana 3.8
29
+ banana 36
30
+ strawberry 25
31
+ grape 14
32
+ apple 28
33
+ orange 37
34
+ banana 37
30
- strawberry 4.6
35
+ strawberry 43
31
- grape 5.3
36
+ grape 32
37
+ apple 38
38
+ orange 42
39
+ banana 20
40
+ strawberry 35
41
+ grape 10
32
42
 
33
- len(dfs) = 3
43
+ len(dfs) = 5
34
44
 
35
45
  dfs[0]:
36
- 0
46
+ 0
37
- apple 1.2
47
+ apple 31
38
- orange 2.5
48
+ apple 28
39
- banana 3.8
49
+ apple 38
40
50
 
41
51
  dfs[1]:
42
- 0
52
+ 0
43
- orange 2.5
53
+ orange 15
44
- banana 3.8
54
+ orange 37
45
- strawberry 4.6
55
+ orange 42
46
56
 
47
57
  dfs[2]:
48
- 0
58
+ 0
49
- banana 3.8
59
+ banana 36
60
+ banana 37
61
+ banana 20
62
+
63
+ dfs[3]:
64
+ 0
65
+ strawberry 25
50
- strawberry 4.6
66
+ strawberry 43
67
+ strawberry 35
68
+
69
+ dfs[4]:
70
+ 0
51
- grape 5.3
71
+ grape 14
72
+ grape 32
73
+ grape 10
52
74
  ```
53
-