質問編集履歴
2
df1_dfにリストのまま代入しようとしていた問題を解決(pandasでデータフレームにした)、簡易な表現に変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,19 +14,23 @@
|
|
14
14
|
|
15
15
|
###目的
|
16
16
|
|
17
|
-
なるべく短時間で処理を行
|
17
|
+
複数の並列処理を入れ子構造で動かし、なるべく短時間で処理を行えるようにしたい。
|
18
18
|
|
19
19
|
|
20
20
|
|
21
21
|
### 知りたい事
|
22
22
|
|
23
|
-
下記コードが進行不可能な理由。
|
23
|
+
下記コードが進行不可能な理由。←解決
|
24
24
|
|
25
25
|
下記コードを動かす改善方法。
|
26
26
|
|
27
27
|
他の有効な並列演算方法はあるかどうか。
|
28
28
|
|
29
29
|
daemonic processesとは何か。
|
30
|
+
|
31
|
+
追記:プロセッシングしてスレッディングすれば解決の可能性があるかもしれないとの事なので、サンプルコードを組んでいただけると助かります。
|
32
|
+
|
33
|
+
自身でもやってみます。
|
30
34
|
|
31
35
|
|
32
36
|
|
@@ -76,41 +80,29 @@
|
|
76
80
|
|
77
81
|
#要素数:countの乱数を生成 = ネズミがゴールするまでにかかった時間(ラップタイム)
|
78
82
|
|
79
|
-
rap_time_list =
|
83
|
+
rap_time_list = list()#リストとして初期化
|
80
84
|
|
81
85
|
for i in range(count):
|
82
86
|
|
83
|
-
rap_time_list
|
87
|
+
rap_time_list.append(random.uniform(30,60))#30~60(秒)の乱数をリストに追加。
|
84
88
|
|
85
89
|
#rap_time_listをデータフレームにし、0列目にラップタイムを持つデータフレームを作成。
|
86
90
|
|
87
|
-
df1_df = rap_time_list
|
91
|
+
df1_df = pandas.DataFrame(rap_time_list)
|
88
92
|
|
89
|
-
#上記データフレームにレーサー番号をつけたいので、
|
93
|
+
#上記データフレームにレーサー番号をつけたいので、indexを付与。
|
90
94
|
|
91
|
-
df1_df
|
95
|
+
df1_df = df1_df.reset_index()
|
92
96
|
|
93
97
|
#0列目のラップタイムをソートして数字の小さい順(ゴール早かった順)にソート。
|
94
98
|
|
95
99
|
df2_df = df1_df.sort_values(by=0)
|
96
100
|
|
97
|
-
#レーサー番号も追従してソートされているので、利用して順位を取る。
|
101
|
+
#レーサー番号もindexとして追従してソートされているので、利用して順位を取る。
|
98
|
-
|
99
|
-
#レーサー番号はdf2_dfの1列目に入っている。
|
100
102
|
|
101
103
|
for i in range(count):
|
102
104
|
|
103
|
-
dummy = df2_df.iat[i,1]
|
104
|
-
|
105
|
-
dummy2 = str(dummy)
|
106
|
-
|
107
|
-
if i == 0:
|
108
|
-
|
109
|
-
race_result = dummy2
|
110
|
-
|
111
|
-
elif i > 0:
|
112
|
-
|
113
|
-
|
105
|
+
race_result = [df2_df.iat[i,0] for i in range(count)]
|
114
106
|
|
115
107
|
return race_result
|
116
108
|
|
1
import pandasの追記, 誤:da1_df[1] = list(range(count)) →正:df1_df[1] = list(range(count))
test
CHANGED
File without changes
|
test
CHANGED
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
|
62
62
|
|
63
|
-
|
63
|
+
import pandas
|
64
64
|
|
65
65
|
import random
|
66
66
|
|
@@ -88,7 +88,7 @@
|
|
88
88
|
|
89
89
|
#上記データフレームにレーサー番号をつけたいので、1列目に番号をつけてラップタイムと紐付ける。
|
90
90
|
|
91
|
-
d
|
91
|
+
df1_df[1] = list(range(count))
|
92
92
|
|
93
93
|
#0列目のラップタイムをソートして数字の小さい順(ゴール早かった順)にソート。
|
94
94
|
|