前回の続き
前回はデータの正規化をメインに行ってきました。
今回はデータのクリーニングがメインです。
データのクリーニング
データのクリーニング(欠損値の処理、異常値の除去など)を行います。また、必要に応じてデータの変換や標準化も行います。
どのような完璧にデータを取ることができていたのか実際に検証しましょう。
空欄の行の処理
空欄の行にはNULLを挿入しました。
取得してきたデータに誤りが存在
オドリドリ、ジガルデといった特殊なフォルムのポケモンは格納されている値の順序に誤りがありました。
それもしっかりと手直ししていきます。
自分で学習してみようという方は頑張ってみてください。
INSERT文の作成
INSERT文は以下のように、EXCELの関数を用いて作成しました。
ほかにもEXCELファイルをそのままSQL SERVERにぶち込めるという操作もあるようですが、私は手作業で行いました。
INSERTの結果???
データをSQL SERVERぶち込んだところ、日本語がうまく反映されないというエラーが発生しました。
こちらは別記事で考えてみようと思います。
不具合の解決
文字化けを起こしてたみたいです。
INSERT文の日本語の前にNをつけると解決。
以下サイトを参照しました。
SQLでテーブル作成・データの格納
CREATE DATABASE ポケモン COLLATE Japanese_CI_AS;
create table pokemon(
id int primary key not null, -- 主キー
name nvarchar(50),
typeId_1 int,
typeId_2 int,
featureId_1 int,
featureId_2 int,
dreamFeatureId int,
hp int not null,
attack int not null,
deffence int not null,
specialAttack int not null,
specialDeffence int not null,
speed int not null,
species int not null
);
INSERT INTO pokemon (id,name,typeId_1,typeId_2,featureId_1,featureId_2,dreamFeatureId,hp,attack,defend,specialAttack,specialDeffence,speed,species) VALUES
(1,N'フシギダネ',4,8,65,NULL,34,45,49,49,65,65,45,318),
....,
(909,N'マーシャドー',7,14,101,NULL,NULL,90,125,80,90,90,125,600)
これでINSERT完了です。
select * from [ポケモンSV].[dbo].[pokemon]
感想
やっぱり実践してみるといろいろな問題に直面しますね。。。
データのクリーニングに関しては、欠損している値は、ほかのWEBページから参照しました。
私自身がポケモンに対して一定の知識を得ていたため、正確な値を補完することができましたが、一切知識のない現場での仕事を考えると。。。
また、INSERTに関してはそもそもデータを新たに格納するのはSSMSだけでなく、C#でやっていたため、これには苦戦させられました。
次回はやっとデータを使っていじることができそうです。
続く。