分布内の値を強調表示する
より良い可視化のためにデータを前処理する必要があることがあります。欠損値の処理には .dropna() と .fillna() という2つの方法があります。また、特定の列に対して .quantile() を使って条件を適用し、あるパーセンタイルを超える(または下回る)外れ値をフィルタリングして除外できます。
動画では、特定の値を強調するために、軸全体に位置 x の垂直線を追加する方法も見ました。
Axes.axvline(x=0, color=None, ...)
この演習では、世界の所得分布を最後にもう一度確認し、95パーセンタイルを超える外れ値を除外して分布をプロットし、平均値と中央値の両方を強調表示します。pandas は pd、seaborn は sns、matplotlib.pyplot は plt としてインポート済みで、前の演習で使った income DataFrame はワークスペースで利用できます。
この演習はコースの一部です
Pythonでの金融データのインポートと管理
演習の手順
- 列
'Income per Capita'をinc_per_capitaに代入します。 inc_per_capitaのうち、95パーセンタイルより小さい行だけにフィルタし、同じ変数に代入し直します。- フィルタ後の
inc_per_capitaについて、デフォルト設定のヒストグラムをプロットし、axに代入します。 ax.axvline()をcolor='b'として使い、inc_per_capitaの平均を青で強調表示します。ax.axvline()をcolor='g'として使い、中央値を緑で強調表示します。結果を表示しましょう!
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create inc_per_capita
inc_per_capita = ____
# Filter out incomes above the 95th percentile
inc_per_capita = inc_per_capita[____ < ____]
# Plot histogram and assign to ax
ax = ____
# Highlight mean
ax.axvline(inc_per_capita.mean(), color='b')
# Highlight median
ax.axvline(inc_per_capita.median(), color='g')
# Show the plot
plt.show()