移動距離のデータフレーム(df)があり、特定の条件に基づいてラベルを割り当てました。Pythonのループのために最適化
distance=[0,0.0001,0.20,1.23,4.0]
df = pd.DataFrame(distance,columns=["distance"])
df['label']=0
for i in range(0, len(df['distance'])):
if (df['distance'].values[i])<=0.10:
df['label'][i]=1
elif (df['distance'].values[i])<=0.50:
df['label'][i]=2
elif (df['distance'].values[i])>0.50:
df['label'][i]=3
これは正常です。しかし、私は距離が100万を超えるレコードを持っていますが、このforループは予想よりも長い時間がかかります。実行時間を短縮するためにこのコードを最適化できますか?
...'おそらく 'else:' – depperm
となりました。おそらく、2番目のelifはb '0.10
Andrew
2つの方法:das ['label'] [i] = 1'はエラーを作成しません'df ['label']'を '0'に設定しますか?そして:あなたがpython2かpython3を使っているのかどうかわかりませんが、python2は 'range'を' xrange'で置き換えます – kratenko