前提・実現したいこと
Pythonを使用しています。
- 実現したい内容 …
「 下記のコード(forから下)で問題なく動くのですがとても処理が遅いです。
newはサンプル用のデータなのですぐに終わるのですが、本番用のデータだととても時間がかかってしまいます。
改善する方法はあるのでしょうか。あれば教えていただきたいです。」
実行したコードとその結果
実行したコード
このようなコードを実行しました。
python
1In[]: 2new = pd.DataFrame({ '人物' : np.array(['a', 'a', 'a', 'a', 'b', 'b', 'c']), 3 '賞金' : np.array([10, 20, 0, 10, 50, 0, 10]), 4 '順位' : np.array([3, 2, 4, 3, 1, 4, 3])}) 5new = new.assign(賞金割合 = 0) 6new = new.assign(平均賞金 = 0) 7 8for i in new['人物'].unique(): 9 new['賞金割合'][new['人物']==i] = new['賞金'][new['人物']==i] / new['賞金'][new['人物']==i].sum() 10 new['平均賞金'][new['人物']==i] = new['賞金'][new['人物']==i].mean() 11new
実行した結果
上記のコードを実行した結果、
以下のようになりました。
python
1Out[]: 2 3人物 賞金 順位 賞金割合 平均賞金 40 a 10 3 0.25 10 51 a 20 2 0.50 10 62 a 0 4 0.00 10 73 a 10 3 0.25 10 84 b 50 1 1.00 25 95 b 0 4 0.00 25 106 c 10 3 1.00 10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。