一対多のマージ
1つの事業者には、オーナーが1人の場合も複数人の場合もあります。この演習では、事業者のオーナー情報を持つ biz_owners テーブルを licenses テーブルにマージすることで、一対多のマージの経験をさらに積みましょう。ビデオレッスンで学んだように、一対多の関係では、左のテーブルの1行が右のテーブルの複数行に対応している場合、その行が繰り返して現れることがあります。この演習では、最も多い事業者オーナーの肩書き(幹事、CEO、副社長など)を調べながら、この仕組みをさらに深く理解しましょう。
licenses と biz_owners の DataFrame はあらかじめ読み込まれています。
この演習はコースの一部です
pandas によるデータの結合
演習の手順
licensesテーブルを左側に置き、biz_owners列をキーとしてaccountテーブルにマージし、結果をlicenses_ownersという変数に保存してください。licenses_ownersをtitleでグループ化し、各肩書きごとのアカウント数を集計して、結果をcounted_dfとして保存してください。counted_dfを accounts の数で降順に並べ替え、sorted_dfという変数に保存してください。.head()メソッドを使って、sorted_dfの最初の数行を表示してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Merge the licenses and biz_owners table on account
licenses_owners = ____
# Group the results by title then count the number of accounts
counted_df = licenses_owners.groupby(____).agg({'account':'count'})
# Sort the counted_df in descending order
sorted_df = counted_df.sort_values(____)
# Use .head() method to print the first few rows of sorted_df
print(____)