実現したいこと
データセットには時系列データで、システムの故障状況と各機械のデータ(float)が含まれています。
データセットをX_trainとY_testとにランダムに分割したいのですが、
X_trainには、故障のない状態('status'カラムが'NORMAL')のみのデータとしたいです(NORMALのみを学習させたい)。
システムの状況('status')には'BROKEN'と'RECOVERING'があります。
Y_testにはどんなデータがあっても構いません。
前提
データセットは10万件ほどあります。ノーマルが9割ほどを占めていて、リカバリーが1割、ブローケンはほとんどない状態です。
ただひたすらにforループを回し続けていますが。もっと良い方法があると思います。
皆さんの知恵をお貸しください。よろしくお願いいたします。
問題
確率的にわかることですが、時間がかかりすぎます。
該当のソースコード
Python3
1while True: 2 # データを分割 3 X_train, Y_test = train_test_split(df, test_size=0.2, random_state=42) 4 # X_trainに'BROKEN'が含まれていない場合、ループを終了 5 if 'BROKEN'and 'RECOVERING' not in X_train['status'].values: 6 break 7print("データ分割が完了しました。")

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。