IBM Cloud Pak for Data as a Serviceを始めてみる（4.データの前処理編）

#### IBM Cloud Pak for Data の XaaS 版 as a Service の始め方をまとめました。

この記事は主に、<strong>データ利用者側</strong>の操作を説明しています。

#IBM Cloud Pak for Data as a Serviceを始めてみる（4.データの前処理編）

### 目次
1. はじめに
2. Data Refinery を使ってデータの前処理をする
    - NULL値の排除
    - コロン(:)での文字列の分割
    - グルーピングで集計
3. ジョブの実行




### シリーズ目次
-<strong>管理者向け</strong>
[IBM Cloud Pak for Data as a Serviceを始めてみる（1.プロビジョニング編）](https://qiita.com/Asuka_Saito/items/df3467dc4c9919772c63)
-<strong>全員</strong>
[IBM Cloud Pak for Data as a Serviceを始めてみる（2.ログイン編）](https://qiita.com/Asuka_Saito/items/457658cf9304e6adff38)
-<strong>データ利用者向け</strong>
[IBM Cloud Pak for Data as a Serviceを始めてみる（3.分析環境編）](https://qiita.com/Asuka_Saito/items/d01a1fc4c5ec5068daeb)
[IBM Cloud Pak for Data as a Serviceを始めてみる（4.データの前処理編）](https://qiita.com/Asuka_Saito/items/1354e7ecbe2b2fb75b3a)
[IBM Cloud Pak for Data as a Serviceを始めてみる（5.モデルの自動作成）](https://qiita.com/Asuka_Saito/items/17ba627abd81d421a8b7)
[IBM Cloud Pak for Data as a Serviceを始めてみる（6.モデルのデプロイと呼び出し）](https://qiita.com/Asuka_Saito/items/814b17acb7f8357bdfab)
[IBM Cloud Pak for Data as a Serviceを始めてみる（7.ダッシュボードの作成）]
(https://qiita.com/Asuka_Saito/items/79a3b9cd7f65b45d04a3)
-<strong>データ提供者向け</strong>
[IBM Cloud Pak for Data as a Serviceを始めてみる（8.カタログの作成）](https://qiita.com/Asuka_Saito/items/3890263e23e4814416a0)
[IBM Cloud Pak for Data as a Serviceを始めてみる（9.ビジネス用語の作成）](https://qiita.com/Asuka_Saito/items/bb6d98ff8cb76e3e19a9)
[IBM Cloud Pak for Data as a Serviceを始めてみる（10.メタデータのインポート）](https://qiita.com/Asuka_Saito/items/c7de6d112f45ea9dbe3b)
[IBM Cloud Pak for Data as a Serviceを始めてみる（11.ビジネス用語の割り当て）](https://qiita.com/Asuka_Saito/items/65da51d93a5433fefbf5)
-<strong>データ利用者向け</strong>
[IBM Cloud Pak for Data as a Serviceを始めてみる（12.カタログ検索してデータを見つける）](https://qiita.com/Asuka_Saito/items/acbc313f48044f8b96c0)
-<strong>管理者向け</strong>
[IBM Cloud Pak for Data as a Serviceを始めてみる（13.Db2のサービスを追加する）](https://qiita.com/Asuka_Saito/items/373e04aabe9dc173ed51)


-<strong>その他参考</strong>
[IBM Cloud Pak for Data as a Serviceを始めてみる（14.GoSalesのデータを使う）](https://qiita.com/Asuka_Saito/items/74a95ed99f6209380b34)
[IBM Cloud Pak for Data as a Serviceを始めてみる（15.コールセンターのデータセットを使う）](https://qiita.com/Asuka_Saito/items/8d436e1279e71d76ad4b)
[IBM Cloud Pak for Data as a Serviceを始めてみる（16.Modelerフローのサンプルを使ってみる - 薬剤研究例 ）](https://qiita.com/Asuka_Saito/items/44aa14bc12c84bdbed24)
[IBM Cloud Pak for Data as a Serviceを始めてみる（17.Db2のサービスへの接続情報を追加する）](https://qiita.com/Asuka_Saito/items/9a486cdad53ab675fa49)
[IBM Cloud Pak for Data as a Serviceを始めてみる（18.機能改善やアイディアを投稿する）](https://qiita.com/Asuka_Saito/items/81b60a7c361ae3e0face)
[IBM Cloud Pak for Data as a Serviceを始めてみる（19.Modelerフローで不良品件数予測モデルを開発する ）](https://qiita.com/Asuka_Saito/items/6f74dc885f6e54ca0caa)
[IBM Cloud Pak for Data as a Serviceを始めてみる（20.無償プランの枠を使い切った場合）](https://qiita.com/Asuka_Saito/items/1fae6bc10817986095bd)



### 1. はじめに 

この記事はIBM Cloud Pak for Data as a Service の分析環境であるWatson StudioのData Refineryを使って、csvファイルの前処理（NULL値の排除、コロン(:)での文字列の分割、グルーピングで集計）をするところまでを実施したいと思います。



### 2. Data Refinery を使ってデータの前処理をする

2-1. IBM Cloud Pak for Data as a Serviceにログインし、TOPページを表示します。
すでに、[IBM Cloud Pak for Data as a Serviceを始めてみる（3.分析環境編）](https://qiita.com/Asuka_Saito/items/d01a1fc4c5ec5068daeb)でプロジェクトを作成し、csvファイルをアップロードしている場合は、「最近使用したプロジェクト」にプロジェクト名が表示されますので、クリックします。
![4-2-1.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/f7db842f-9512-6196-da10-da9320de9bd1.png)





2-2. 分析プロジェクトが立ち上がります。資産タブに移動して最初にアップロードしたcsvファイルをクリックします。
![4-2-2.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/58b56941-fdea-bfdc-f717-1c996c9886fc.png)




2-3. 「精製」をクリックします。
![4-2-3.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/59aa10df-4db7-5f33-3449-cfdaa477df77.png)


2-4. しばらく右上に「最初の50行のプレビュー中」というメッセージが表示されていますが、消えたら前処理の作業ができます。
![4-2-4.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/6833b8ec-18bf-9e17-b46a-d27580faa084.png)



2-5. NULL値の排除
NULL値の排除は、「DEFECT_QUANTITY」列の右端を右クリックして「空の行の削除」を選択します。
![4-2-5.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/8814d24e-668f-1f0f-40e0-ab09eb20747e.png)





2-6. コロン(:)での文字列分割
コロン(:)での文字列分割は「MES_TIME」列で実施します。データは時間分秒まで表示されているのですが、グルーピングしやすいように、最初のコロン(:)前までの文字列を取得します。
「MES_TIME」列の右端を右クリックして「すべて表示」を選択します。
![4-2-6.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/7563dc0c-a418-3220-4247-7a63ca496527.png)

「列の分割」を選択します。
![4-2-7.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/51cc31d0-3b20-a4b0-9012-9c4d47e4b456.png)

以下の図のように設定し、最後に「適用」をクリックします。
![4-2-8.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/745e5687-9e64-9e2b-ed33-e5d7df7a2ac4.png)


TIME列に分割された文字列が入りました。
![4-2-9.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/152f2a73-005d-3b26-3509-c4a44573baed.png)





2-7. グルーピングで集計する

「MES_DATE」「TIME」「FACTORY_LINE」「LINE_ROBOT」毎にいくつ不良品「DEFECT_QUANTITY」を出しているか集計します。

「MES_DATE」列の右端を右クリックして「すべて表示」を選択します。
![4-2-10.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/f6018739-989a-2b07-1671-74916ca418cb.png)

「集計」を選択します。
![4-2-11.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/54028176-f640-0042-ff61-bda377d216ec.png)


列でグループ化にチェックを入れて、「MES_DATE」「TIME」「FACTORY_LINE」「LINE_ROBOT」を順に指定します。
![4-2-12.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/c919a3a4-5d52-b142-c77f-cbd1e632c499.png)

集計する列に「DEFECT_QUANTITY」をセットして「合計（Sum）」をセットします。
集計結果を入れる列名を入力して「適用」をクリックします。
![4-2-13.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/e6a92c3a-ec42-70a5-a1d6-b6f1a6120b87.png)


「MES_DATE」「TIME」「FACTORY_LINE」「LINE_ROBOT」毎にグルーピング集計された不良品の合計数が表示されました。
![4-2-14.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/53d0d7e9-ca39-ea5b-310b-4c9847a3da4c.png)




### 3. これまでの前処理の設定をデータ全件に適用したいので、ジョブを実行します。
ジョブを実行するには、「ジョブを保存して作成」をクリックしますが、すでに、同じジョブのフロー名が作成されている場合、ジョブが実行できません。まずは、フロー名を変更します。

3-1. 「Deta Refinery フロー名」をクリックします。
![4-2-16.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/985ada96-530f-b599-3857-e82f874966f9.png)

3-2. 新しいフロー名を入力し、「適用」をクリックします。
![4-2-17.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/b51ee6ba-35fa-0bb9-e30d-b5ed5b043706.png)

3-3. 「ジョブを保存して作成」をクリックします。
![4-2-18.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/7c41f1f4-ff0d-1614-367c-4fc83d405298.png)

3-4. ジョブ名を入力して「次へ」をクリックします。
![4-2-19.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/b05402a0-acf3-3421-a952-b493a8fafb37.png)

3-5. 次へをクリックします。（出力されるファイル名がすでにある場合上書きされます。）
![4-2-20.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/d388f482-098a-cf4d-5847-158f5836410f.png)

3-6. スケジュールは設定せず、「次へ」をクリックします。
![4-2-21.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/a8440ec0-7a1f-3875-7b5d-66af083b5634.png)



3-7. 作成して実行をクリックします。
![4-2-22.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/da3ec625-5887-0570-8aec-eb76b72769bf.png)





3-8. ジョブが終了するまで、しばし待ちます。
![4-2-23.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/90e75a7a-d540-d402-38b3-80129710eb81.png)



3-9. ジョブが完了したら、左上のリンクからプロジェクト名をクリックし、「資産」タブに戻り、ジョブで生成したcsvファイルが保存されていることを確認します。クリックして中身を見てみます。
![4-2-24.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/249e5695-0bda-dddf-b9ce-55b8d2160084.png)

![4-2-25.DR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435996/ca23fba1-3e2b-339a-1e7d-991f8c90a014.png)


次回は今回精製したcsvファイルを使って、AutoAIで自動で不良品数の予測モデルを作成したいと思います。IBM Cloud Pak for Data as a Serviceを始めてみる（5.モデルの自動作成）（近日公開）をご参照ください。