Excelで行っていた作業を、Exploratoryでどのように簡単に解決していけるのかを紹介するExcelシリーズです。
今回はその中でも、「データタイプを変換する方法」について紹介をしていきます。
Excelではセルの書式設定でそのセルに対してのデータ型を指定しますが、Exploratoryではデータのインポート時、またはデータタイプを変換機能を使用していくことになります。
例えば、以下のようなExcelのデータがあり、売上には値の先頭にドルマーク($)がついています。
インポート時に列に数値以外に文字列などが入っていると、データタイプがCharacter型(文字列型)になってしまいます。
もし意図したデータタイプと異なる場合は、インポート時、またはインポート後にステップとしてデータタイプを変換することができます。
インポート時に変換をしたい場合は、列名の下にあるメニューから適切なデータタイプを指定します。
今回の場合は、売上には「Numeric(数値)」を選択します。
データタイプを指定ができたら、「適用」ボタンをクリックしてデータタイプが変わっているか確認します。
データタイプが適切に変更されていれば、「インポート」ボタンをクリックします。
これによってドルマーク($)が先頭についた売上の列をNumeric型(数値型)としてインポートすることができました。
インポート後にデータタイプが意図したものと異なる場合は、列ヘッダメニューにある「データタイプを変換」から適切なデータタイプに変換をしていきます。
今回の場合は、売上の列から「データタイプを変換」の「Numeric(数値)型に変換」を選択します。
「計算を作成」のダイアログが表示され、計算エディタには数値のみを抽出できるparse_numberという関数が使用されているため、そのまま実行します。
これによって「売上」の列を「数値型」に変換することができました。
例えば、以下のように入社日と退社日という日付を表す列があったとします。
Exploraotryにインポートをすると、日付を表す値が数値(41620)になり、データタイプも文字列型(Character)になっています。
退社日の列には日付の情報以外に文字列も含まれているため、データタイプの自動認識で日付型だと認識されていません。
そもそも、なぜ日付を表す値が「41620」のような数値になるのでしょうか?
Excelでは基準日からの「経過日数」として値をもっており、、日付の値が「2000/1/1」の場合は「36526」になります。
日付の値が「2010/1/1」の場合は、基準日からの「経過日数」として値は「40179」になります。
そのため、日付が数値になってしまうデータを日付データに変換したいです。
インポートダイアログにて、退社日のデータタイプを「Date(日付)」に変更します。
これによって数値(44197)を日付に変換することができます。
インポート後にデータタイプを変換したい場合は、列ヘッダメニューから「データタイプを変換」にある「数値(Excel)から日付に変換」を選択します。
数値(Excel)から日付に変換するための「excel_numeric_to_date」という関数が指定されているため、そのまま実行します。
実行することで、数値(44197)を日付に変換することができました。