1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

データの可視化でよく使うコード

Posted at

Qiita初投稿です。「とにかく投稿することに意義がある!」というどこかで聞いた言葉を信じて、普段データの可視化分析をする時によく使うコードを備忘録的に書いておこうと思います。

データの取得

csvファイルの形式でデータファイルが保存されている場合が多いので、それを前提とします。

import pandas as pd

path = "./data.csv"

data_df = pd.read_csv(path, engine="python")

データの読み込みは、pandasのread_csvを使用しています。引数engine="python"は、Windows環境では書いておかないとエラーになります。理由はよくわかりません。

データの概要をチェック

読み込んだデータの中身をざっと俯瞰します。

import pandas_profiling as pdp

data_df.info()

pdp.ProfilerReport(data_df)

pandas.info()でデータ型や欠損の有無などを見ます。
また、pandas_profiling.ProfilerReport()を使うと、各変数の最大・最小や平均値、ヒストグラム、相関ヒートマップなどを一気にみることができ、非常に便利です。

散布図行列の出力

各変数の分布をざっとみるために、散布図行列を使います。


import seaborn as sns

sns.pairplot(data=data_df, hue="target", diag_kind="kde", kind="reg")

引数hueでカテゴリ変数のカラム名を指定することで、カテゴリごとに自動で色分けしてくれます。ここでは目的変数で色分けしていることを想定しています。
引数diag_kindを指定すると、対角成分のグラフを変更することができます。kdeはカーネル密度推定(Kernel Density Estimation)です。

線グラフ

時系列データを可視化するときなど。


data_df.plot(figsize=(15,4), title="title")
plt.show()

pandasのplotメソッドをそのまま使ってしまうことがほとんどです。
クラス別に、同じ図に描画するときは、新しいDataFrameを作ってしまいます。


class_list = list(data_df["target"].unique())
plot_df = pd.DataFrame()

for c in class_list:
    tmp = assign_df[data_df["target"] == c].loc[:, "plot_param"]
    tmp = pd.DataFrame(list(tmp), columns=[c])
    plot_df = pd.concat([plot_df, tmp], axis=1)

plot_df.plot()
plt.show()

このコードでは欠損値を考慮していません。

終わりに

記事書くのって難しい。。
改めて自分のコード見直すと色々ダメなところが見えてきて勉強になります。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?