結合をしてデータの行数が増えてしまうと、その後の分析で集計や可視化を行った時に誤った結果につながってしまうことがあります。そこで、結合時に行数が増えてしまった時に、どこに問題があるのかを調べる方法、そしてその問題を解決するための方法についてご紹介をします。
結合が正しく行われているか確認し、問題があったときにどうやって解決すればよいのか知りたい。
顧客の売上データと居住国データを結合する際に行数が増加してしまう問題に対処します。
例えば、顧客ごとの売上データがあったとします。
もう一つのデータとして、顧客属性データがあり、これらを結合したいとします。
売上データの「顧客ID」の列から「結合」を選択します。
結合のダイアログが表示されるため、データフレームには「顧客の居住国データ」を選び、結合キーには「顧客ID」を選択して実行します。
そうすると、結合前のデータの行数は60行だったところが119行と増えていることが確認できます。
実際に、1人の顧客の売上データにも関わらず、国やマーケットといった属性情報側で異なる情報を持ち、2行になっていることが確認できます。
このように結合をしたときに行数が増えてしまうときには、結合先のデータ側でキー列に重複行が発生しているケースが多いです。
重複している行があるかを特定するためには、結合先のデータで「行数」と「一意な値の数」が一致しなければ、重複行が発生していると判断していくことができます。
重複行の除去のために、列ヘッダメニューから 「フィルター」の「重複する行を除く」を使用します。
表毛の対象となる列には「指定した列」を選び、今回の場合は結合キーである列「顧客ID」を指定します。
重複行を除くことで、行数と一意な値の数が一致していることが確認できます。
重複行を除く際の注意点として、最初の値を残し、その後にある重複行を除くようになっています。そのため、最新のデータを保持したい場合は、事前に日付の降順などで並べ替えておくのをお勧めします。
重複行を除去した後、元のデータフレームに戻り、結合結果を確認します。これにより、行数の増加を防ぎながら必要なデータを結合することができます。
適切な結合キーの選択
国ごとの売上データと国ごとのマーケティング費用のデータを結合する際のケースを紹介します。
国ごとの売上データ
国ごとのマーケティング費用のデータ
結合時にキー列に「国」だけを選ぶと、以下のように国ごとの売上データの2020年のデータに対して、国ごとのマーケティング費用のデータは4年分が紐づいていて行数が増えていることが確認できます。
そういったときには「国」と「年」の複数の列を結合キーとして指定します。
キー列の「+」ボタンをクリックして、「国」に加えて「年」を結合キーとして追加します。
これにより、2020年の売上データには2020年の広告費用に関するデータが追加されていることが確認できます。