始める無料で始める

最もマーケットに優しい州はどこ?

ファーマーズマーケットのデータを探索していると、州レベルに集計したらどんなパターンが見えるのか気になりました。州によってマーケットに優しいところとそうでないところがあるのでしょうか。これを調べるため、データを州ごとにグループ化し、マーケット数(log_markets)と州の人口(log_pop)を対数変換した値を計算します。

markets_and_pop = (markets
    .groupby('state', as_index = False)
    .agg({
       'name': lambda d: log(len(d)),
       'state_pop': lambda d: log(d.iloc[0]) })
    .rename(columns = {
        'name': 'log_markets', 
        'state_pop': 'log_pop' }))

可視化には、マーケット数と人口数の「通常の」関係性を把握するために回帰プロットを使い、興味深い外れ値を素早く見つけるためにテキスト付きの散布図を組み合わせることにしました。

この演習はコースの一部です

Pythonでデータ可視化を磨く

コースを見る

演習の手順

  • markets_and_pop DataFrame の各行を反復処理してください。
  • 散布図の各点のそばにアノテーションを配置してください。
  • アノテーションの文字サイズを 10 pt に下げてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

g = sns.regplot(
    "log_markets", "log_pop", 
    ci = False,
    # Shrink scatter plot points
    scatter_kws = {'s':2},
    data = markets_and_pop)

# Iterate over the rows of the data
for _, row in markets_and_pop.____():
    state, _, _, log_markets, log_pop = row
    # Place annotation and reduce size for clarity
    g.annotate(state, (____,____), ____ = ____)

plt.show()
コードを編集して実行