投稿

Section 22 ヒストグラム(2)

イメージ
前のセクションで用いた histplot のバリエーション、そして displot 、 catplot を使った様々なヒストグラムの描き方を習得していきましょう。 少し高度なグラフですが、 カーネル密度推定 によるグラフ(ヒストグラムの滑らかなバージョン)、 経験的累積分布関数 によるグラフ(ヒストグラム以外のデータの分布を表すグラフ)も描くことを取得していきましょう。 それらを実現するプログラムは下記の6つです。 58  sns.histplot(data=データ名, x=“列名1”, hue=”列名2“  , multiple='stack’)  59  sns.histplot(data=データ名, x=“列名1”, hue=”列名2“  , multiple='dodge’) 60  sns.displot(data=データ名, x=“列名1”) 61  sns.displot(data=データ名, x=“列名1”, kde=True) 62  sns.displot(data=データ名, x=“列名1”, kind=‘ecdf’) 63  sns.catplot(data=データ名, x=“列名", kind='count’) ヒストグラムは、様々なプログラムで描くことができます。これが、seabornの柔軟なところですが、逆にわかりにくいところでもあります。 このチュートリアルでは、histplot、displot、catplot毎に解説するのではなく、グラフの種類ごとに解説していきます。各グラフ毎に、自分に合った一つのプログラムを選択して身に付けていけば十分です。 ■ まずは、概要を理解したい方は、下記の 動画 (14分19秒)をご覧ください。   ■ PowerPoint(パワポ) でじっくりと理解したい方は、下記のスライドを参照してください。 Section 22 ヒストグラム(2) by @Cat_Taro ■ 参考URL ●二次元ヒストグラムのイメージ  → HK29さんのブログ「PythonとVBAで世の中を便利にする」   https://hk29.hatenablog.jp/entry/2021/08/21/230609  ●経験的累積分布関数(ECDF)のグラフの見方 →

Section 21 ヒストグラム(1)

イメージ
さて、本セクションでは、Section 20で作成した「id_pos11」を使って、 ヒストグラム を描いていきます。 ヒストグラムとは、対象のデータを区間ごとに区切った 度数分布表 を、棒グラフに似た図で表現したグラフのことです。データの分布を見るために用いられます。 横軸(X軸)の数値を「 階級 」と呼び、データを区切った区間を表します。縦軸(Y軸)の数値は、「 度数 」と呼び、各区間に含まれるデータの数量を表します。 それらを実現するプログラムは下記の6つです。 52 sns.histplot(data=データ名, x=“列名")  53 sns.histplot(data=データ名1, x=“列名")     sns.histplot(data=データ名2, x=“列名")  54  color=‘色’ 55 plt.legend(labels=[“A", “B", “C"])  56  alpha=数字 57 sns.histplot(data=データ名, x=“列名1”, hue=”列名2“)   ■ まずは、 概要を理解したい方は、下記の 動画 (9分30秒) をご覧ください。   ■ PowerPoint (パワポ) でじっくりと理解したい方は、 下記のスライドを参照してください。 Section 21 ヒストグラム(1) by @Cat_Taro ■ 参考URL ●seabornでは、matplotlibの色指定の方法を使います。詳細は、下記を参照してください。       https://matplotlib.org/2.0.2/examples/color/named_colors.html

Section 20 グラフ用のデータを作る

イメージ
本セクションはでは、ビンのラベルを元のデータに付与して作った「id_pos7_2」を、seabornでグラフを描いた際に、影響力のある3カ国を選んで、結果がわかりやすいように、データを作っていきます。 1.「 groupby 」を用いて、国別にTotal(合計金額)を算出します。これは、㉖の応用ですね。 2.カンマに続けて「 sort_values 」を使い、 Totalが大きい順に並べ替えます。これは、⑰の応用ですね。 3.Section 10で解説した列の値に対する条件に応じて行を抽出する「query」を用いて、上位3カ国のデータのみを抽出します。         データ名.query('列名 == ["要素名1", "要素名2"]') 「㉔ データ名.query(“列名 == 列名”)」とは異なりますので、注意してください。 ■ まずは概要を理解したい!という方は、下記の 動画 (8分0秒) をご覧ください。    ■ PowerPoint でじっくり理解したい方は、右下のマーク「 ページを新しいウインドウで開きます。 」 をクリックしてください。 Section 20 グラフ用のデータを作る by @Cat_Taro

Section 19 ビンのラベルを元のデータに付与する

イメージ
Section 18では、データの変数を分割する「 ビニング処理 」を解説しましたが、このセクションでは、 そのビン(分割区分)に付けたラベルを元データに付与する方法を解説します。 元データに、新たなデータ項目を追加することにより、分析の幅が広がりますので、今回のスキルをしっかりとマスターしましょう。このプログラムは、 機械学習 用のデータを作成するときにもよく使うものです。 それらを実現するプログラムは下記の2つです。 ㊾ 新データ名 = 元データ名.copy() ㊿ 新データ名[“新列名”] = pd.cut(元データ名[“列名”]         , [数字1, 数字2, 数字3]          , labels=[ラベル1, ラベル2, ラベル3] ) また、Pythonのプログラムを書く際に犯してしまうミスを警告してくれるコラボの機能「 SettingWithCopyWarning 」を体験し、それを防ぐ方法も身に付けていきましょう!  ■ まずは、 概要を理解したい方は、下記の 動画 (8分45秒) をご覧ください。 ■ PowerPoint (パワポ) でじっくりと理解したい方は、下記のスライドを参照してください。 Section 19 ビンのラベルを元のデータに付与する by @Cat_Taro    ■ 参考URL ブログ「naoの学習&学習」の「【Pandas】 データフレームをコピーしたいときにcopy()を使う意味」のURLは下記のとおりです。 https://www.learning-nao.com/?p=2384

Section 18 データを分割するビニング

イメージ
Section 17では、データに含まれていた時間の「ドリルダウン」、すなわち「年」から「年月」への「ドリルダウン」を行いましたが、このセクションでは、「 ドリルダウン 」するための数値を新たに作っていきます。 「商品」に属する「UnitPrice(単価)」を、顧客の特徴をよく表すように分割(これを「 ビニング 」と言います)する方法を身に付けましょう。 それらを実現するプログラムは下記の7つです。 ㊺ pd.cut( データ名[“列名”], 分割数, precision=□, right=True ) ㊻ pd.cut( データ名[“列名”], 分割数 ). value_counts() ㊼ pd.cut( データ名[“列名”], [数字1, 数字2, 数字3] ) ㊽ pd.cut( データ名[“列名”], [数字1, 数字2, 数字3]      , labels=[ラベル1, ラベル2, ラベル3] ) ■ まずは、 概要を理解したい方は、下記の 動画 (6分47秒) をご覧ください。   ■ PowerPo int (パワポ) でじっくりと理解したい方は、下記のスライドを参照してください。 Section 18 データを分割するビニング by @Cat_Taro   ■ 参考URL ●ビニングに関しては、Smart-Hintが運営している「データをビニング(ビン分割)する方法|cut」がとってもわかりやすかったので、参考にしてみてはいかがでしょうか。 https://smart-hint.com/python/cut/ ●フリーランスのサウンドクリエータ「パンダの中のパンダ」さんがやっている「【AIプログラミング】 ビニングでボストン住宅価格の回帰」が役に立つと思いますので、下記を参考にしてみてくださいね。 https://panda-clip.com/binnning-boston/

Section 17 seabornでグラフ描画(2)

イメージ
それでは、データサイエンス・チュートリアル 第19回目、Section 17「seabornでグラフ描画(2)」を始めます。 このセクションでは、 OLAPキューブ の分析手法に従い、時間に関してドリルダウンを行い、データ分析を試みていきます。 また、それらの結果で説得力あるプレゼンをするために、 seaborn で作成したグラフを見栄えよくする方法を身に付けていきましょう。具体的には、seabornの日本語化、グラフの大きさを指定、軸の単位を整数にする、グラフをクールに表示する(ggplotライク)、グラフのタイトルを表示、 y軸の表示範囲を設定、グラフの画像を保存などを解説します。 Seabornの体裁を整えるプログラムを整理すると、下記のようになります。 今回、解説するプログラムは下記の7つです。あまり、応用することは無いので、そのまま覚えるか、コピペできるようにしておきましょう。   ㊳ !pip install japanize-matplotlib    import japanize_matplotlib  ㊴ plt.figure(figsize=(○, △), dpi=□)  ㊵ plt.gca().ticklabel_format(style='plain’,axis='y’)  ㊶ plt.style.use("ggplot")  ㊷ plt.title(“グラフタイトル")  ㊸ plt.ylim(最小値,最大値)  ㊹ from google.colab import files       plt.savefig(“画像ファイル名.jpg")       files.download("画像ファイル名.jpg") ■ まずは、 概要を理解したい方は、下記の 動画 (11分40秒) をご覧ください。 ■ PowerPoin t (パワポ) でじっくりと理解したい方は、右下のマーク「ページを新しいウインドウで開きます。」をクリックしてください。 Section 17 seabornでグラフ描画(2) by @Cat_Taro

Section 16 seabornでグラフ描画(1)

イメージ
データサイエンス体験動画「データサイエンス チュートリアル 猫のタロー編」、第18回目、Section 16「seabornでグラフ描画(1)」始めます! 今回からは、時間の ドリルダウン とライブラリ「 seaborn 」を使ったグラフの描画です。 seabornは、 x、y軸 (場合によってはz軸も) が列 でないとグラフを描いてくれません。groupbyなどを使って年や年月ごとに売上の合計を出すと、年や年月がインデックスになっていますので、列にして直す必要があることに注意して下さい。 それらを実現するプログラムは下記の7つです。   ㉖’ データ名.groupby(“列名”).sum()  ㉝ import matplotlib.pyplot as plt  ㉞ import seaborn as sns  ㉟ %matplotlib inline  ㊱ sns.barplot(data=データ名, x=“列名1”, y=“列名2”)  ㊲ データ名.reset_index()  ㊳ データ名.groupby(“列名”, as_index=False).sum() ■ 概要を理解したい方は、下記の 動画 (8分59秒) をご覧ください。 ■ PowerPoint (パワポ) でじっくりと理解したい方は、右下のマーク「ページを新しいウインドウで開きます。」をクリックしてください。 Section 16 seabornでグラフ描画(1) by @Cat_Taro ■ 参考URL seaborn公式ドキュメントのGallery https://seaborn.pydata.org/examples/index.html