このノートは、データラングリング(データの加工・整形)に関するExploratoryの機能を効率的に手を動かしながら体験していただくために用意された「データラングリング」のトライアルツアーの第1弾、「データ加工の基礎」編です。
Exploratoryでデータをラングリング(加工・整形)する際に、抑えておきたい一般的なデータの加工に関する便利な機能を体験していただければと思います。
所要時間は20分ほどとなっています。
それでは、さっそく始めていきましょう!
Exploratoryでは、データのインポートを含め、全てのデータ分析はプロジェクトの中で行います。
そのため、まずは元となるプロジェクトを作成する必要があります。
プロジェクトの管理画面から「新規作成」のボタンをクリックします。
任意のプロジェクト名を入力して作成ボタンをクリックします。
プロジェクトを作成することができました。
プロジェクトを作成することができたら、次はデータをインポートしていきましょう。
今回はサンプルデータとして「売上」データを使用します。このデータは1行が1注文(厳密には明細)のデータになっており、注文日、注文された製品のカテゴリー、売上などの注文情報が列として入っています。
データはこちらのページからダウンロードできます。
売上データをダウンロードできたら、ダウンロードしたフォルダを開き、「売上データ.csv」をExploratoryの画面にドラッグ&ドロップします。
インポートダイアログが表示されました。インポートダイアログの左側にある項目から、インポート時の設定を行うことが可能ですが、今回は設定は不要なため「インポート」ボタンをクリックします。
任意のデータフレーム名を指定して、「作成」ボタンをクリックします。
売上データをインポートすることができました。
注文日の列のデータタイプが文字列型になっていますが、このデータを日付型に変換したいです。
注文日の列から「データタイプを変換」の「Data(日付) /POSIXct(日付/時間)型に変換」を選びます。次に、日付の順番をもとに「Year, Month, Day」を選択します。
計算エディタにはymdといった日付型に変換するための関数がすでに使用されているため、このまま実行ボタンをクリックします。
注文日の列を日付型(Date)に変換することができました。
注文日以外にも、データタイプを変更した方がいい列があります。
それが、「売上」、「ダイレクトメール費用」、「オンライン広告費用」の列となります。これらは本来であれば数値(Numeric)型が適切なはずですが、数値の中に文字列($)が含まれているために、文字列(Character)型になっています。
これらの列を一気に数値(Numeric)型に変換していきましょう。
MacであればCommandキー、WindowsであればCtrlキーを押しながら、「売上」、「ダイレクトメール費用」、「オンライン広告費用」の3つの列を選択し、列ヘッダメニューから「データタイプを変換」の「Numeric(数値)型に変換」を選択します。
計算を作成の複数の列のダイアログが表示されるため、「実行」ボタンをクリックします。
実行することで、「売上」、「ダイレクトメール費用」、「オンライン広告費用」の3つの列が数値(Numeric)型に変換されていることがわかります。
「売上」を「数量」で割った「売上単価」の列を新たに作成したいとします。
そういった時には、列ヘッダメニューの「計算を作成」の「標準」を選択します。
計算を作成のダイアログが表示されるため、計算エディタには下記の式を入力します。
売上 / 数量
新しく列を作成にチェックをつけ、列名には「売上単価」を指定します。
この列の後に作るでは、新しく作成した列の位置を指定することができます。今回は、数量の後に「売上単価」の列を作りたいため、「数量」を選択します。
実行することで、「売上単価」の列を作成することができました。
今回使用しているデータは、1行が1つの注文での商品ごとに行が分かれているデータですが、集計をして1行1顧客にして売上合計や注文回数を求めたいとします。
データとして集計をする場合は、顧客IDの列ヘッダメニューから「集計」を選択します。
集計のダイアログが表示され、グループには「顧客ID」の列が割り当てられています。
値には「売上」の列を割り当て、集計関数には「合計値(SUM)」を選択します。
次に、値の2つ目には注文回数を求めたいです。
注文回数を求めるためには、値に「注文日」を選び、集計関数には「一意な値の数(UNIQUE)」を選択します。
これによって、その顧客が同じ日の注文で複数の行があったとしても、それを同じ注文だと計上して注文回数を求めることが可能です。
しかし、列名が「注文日」になっているため、列名を変更しましょう。
値にある「注文日」の横にある「編集」ボタンをクリックし、新しい列名に「注文回数」を指定します。
これによって、列名を「注文回数」に変更することができたため、「実行」ボタンをクリックします。
1行1明細のデータから、1行1顧客のデータに集計することができました。
先ほど使用した売上データとは別に、顧客の属性データをインポートしていきましょう。
顧客属性データは1行が1顧客のデータになっており、その顧客が住む地域やセグメントなど、顧客の属性情報が列として入っています。
データはこちらのページからダウンロードできます。
顧客属性データも、こちらのデータのインポートと同様にしてインポートをしてください。
元々使用していた売上データには、顧客の属性情報を表す列はありませんでした。
この売上データに対して、先ほどインポートした顧客の属性データを列として追加をしたいです。
売上データの顧客IDの列から「結合」を選択します。
結合のダイアログが表示されるため、結合先データフレームには「顧客属性データ」を、キー列にはどちらも「顧客ID」の列を選択します。
プレビューを押すことで、結合結果を確認できます。結合で追加される列はオレンジ色のバーが列名の上に表示されることとなっています。もし問題なく結合ができていれば、「実行」ボタンをクリックします。
実行することで、顧客の売上データに対して、顧客の属性情報の列を追加することができました。
データラングリングのトライアルツアーのデータ加工の基礎編は以上となります!
データラングリングのトライアルツアーの他のパートは下記のリンクからご確認いただけます。ぜひ次の「データの持ち方」のパートも実施してみてください。