#データ分析用パーツ集
- 履歴
- 2021/01/21 ver1
version.cmd
python --version
:: Python 3.7.6
jupyter --version
:: jupyter core : 4.6.1
:: jupyter-notebook : 6.0.3
:: qtconsole : 4.6.0
:: ipython : 7.12.0
:: ipykernel : 5.1.4
:: jupyter client : 5.3.4
:: jupyter lab : 1.2.6
:: nbconvert : 5.6.1
:: ipywidgets : 7.5.1
:: nbformat : 5.0.4
:: traitlets : 4.3.3
パッケージ
import.py
import pandas as pd #データ解析を支援する機能を提供するライブラリ
import numpy as np #数値計算の拡張モジュール
import matplotlib #データビジュアライズに関するパッケージ
import matplotlib.pyplot as plt # 自動的にプロットするためのインターフェース、らしい
from datetime import datetime as dt #日付や時刻を操作するためのモジュール
from sklearn.preprocessing import StandardScaler #データ標準化用モジュール
matplotlib内で日本語を扱う
参照元: matplotlibで日本語
matplot_japanese.py
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Hiragino Maru Gothic Pro', 'Yu Gothic', 'Meirio', 'Takao', 'IPAexGothic', 'IPAPGothic', 'VL PGothic', 'Noto Sans CJK JP']
表示するグラフや画像のサイズ
figsize.py
plt.figure(figsize=(20,2))
データの入出力
SQLから読み込み
#SQL
import pymysql
import sqlalchemy
from sqlalchemy import create_engine
#接続情報
url = 'mysql+pymysql://root:XXXX@127.0.0.1:3306/databasename?charset=utf8'
engine = sqlalchemy.create_engine(url, echo=False)
#実行
query = "SELECT * FROM Table"
dataset = pd.read_sql(query,con = engine)
CSVの入出力
csv.py
dataset = pd.read_csv("pass of csv", encoding = "utf-8")
dataset.to_csv("pass of csv", encoding="shift-jis")
クリップボードに出力
clipboard.py
!pip install pyperclip
import pyperclip
pyperclip.copy(STR_XXX)
前処理的な
内容の確認
info.py
dataset.info()
dataset.describe() #max,min,mean,std,四分位数等
整形
index.py
#データフレームにインデックスの設定
dataset2 = dataset.set_index('StoreCD')
#型変更
dataset['colum']=dataset['colum'].astype(int)
###データフレームの分解と結合
- クロス集計されたデータを単純なROWデータに分解する
melt_concat.py
#データフレームの分解
meltDF1 = pd.melt(dataset,id_vars='index_column',var_name='horizon_axis_column_name',value_name='value_column_name')
#データフレームの結合
concatDF = pd.concat([meltDF1,meltDF2])
NULL値の処理
null.py
dataset.fillna(0,inplace=True) #0埋め
dataset.isnull() #データフレーム全体で確認
dataset.isnull().any() #列ごとに確認
ダミー変数
dummy.py
target_col = 'a'
str_colmns = ['b','c','d'] #数値でない列
dummie_cols = ['b'] #数値でない列の中でダミー化したい列
exclude_cols = [col for col in str_colmns if col not in dummie_cols] #
#ダミー変数化
df = pd.get_dummies(data=df, columns=dummie_cols)
#ダミー化した後の列から特徴量として利用する列を指定する
feature_cols = [col for col in df.columns if col not in exclude_cols]
##可視化と探索
項目間の相関係数をとる
corr.py
corrDF = df[feature_cols].corr()
ヒートマップ
heatmap.py
import seaborn as sns
sns.heatmap(corrDF,annot=False) #annot=Trueで数値を表示する
重なる棒グラフ
distplot.py
import seaborn as sns
g=sns.FacetGrid(df,hue="target_column",height=3)
g.map(sns.distplot,"feature_column",kde=False)
g.add_legend()
seabornの色設定
- 連動した色設定にすることができる
color.py
flatui = ['#969696', '#DA5019']
sns.set_palette(flatui)
comment
- 過去のコードから探し出してコピペするのが面倒なので