kaggleなどのデータ分析で忘れがちなpythonコードを使用する段階ごとにまとめておきます
 jupyter notebookの使用を想定しています
はじめ
定番モジュールの読み込み
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # numpyとpandas import numpy as np import pandas as pd # ファイルシステム管理(カーネルでのみ利用) import os # 警告を消す import warnings warnings.filterwarnings('ignore') # 可視化 import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline #表示する最大列数を変更 pd.set_option('display.max_columns', 100)  # 表示する最大行数を変更  pd.set_option('display.max_rows', 100) | 
訓練データを読み込み、データサイズと先頭行を把握
| 1 2 3 4 5 6 | # sepでデータ間の区切り文字を指定(デフォルトでは',') # index_colでindexとなるカラムを指定(デフォルトでは自動で0,1,2...のindexが割り当てられる) # index_col=0にすると、元々のデータの一番左のカラムが自動でindexとなる df_train=pd.read_csv('パス or URL',sep=';',index_col=0) print('Training data shape: ', df_train.shape) df_train.head() | 

元々のデータの左端に0,1,2...のindexが書かれている場合は、index_col=0にしないと、0,1,2..のindexが重複してしまうよ♪
テストデータを読み込み、データサイズと先頭行を把握
| 1 2 3 4 | # 訓練データと同様 df_test=pd.read_csv('パス or URL',sep=';',index_col=0) print('Testing data shape: ', df_test.shape) df_test.head() | 
データの値を観察
全体に注目
統計量
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # カラムごとのdtypeとnon-nullデータ数 df.info() # 最頻値  df.mode() # 分散 df.var() # 標準偏差 df.std() np.sqrt(df.std()) # カラムごとの平均値、中央値、標準偏差などを一気に表示 # include='all'にするとカテゴリカルなカラムでも統計量を表示(count,unique,top,freqのみ) # 25%:第1四分位点(全体を100とした時小さい方から25番目の値),50%:中央値 # 75%:第3四分位点(全体を100とした時小さい方から75番目の値) df.describe(include='all') | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # カラムごとの欠損値数とその割合を算出する関数 def missing_values_table(df):     # 全欠損値数     mis_count = df.isnull().sum()     # 欠損値の割合     mis_count_percent = 100 * df.isnull().sum() / len(df)     # 出力する表の作成     mis_count_table = pd.concat([mis_count, mis_count_percent], axis=1)     # カラム名のリネーム     mis_count_table = mis_count_table.rename(columns = {0 : 'Missing count', 1 : '% of Total count'})     # 欠損値数が0じゃないものだけを取り出し降順に並び替え     mis_count_table = mis_count_table[         mis_count_table.iloc[:,1] != 0].sort_values(     '% of Total count', ascending=False).round(1)     # 全カラム数と欠損値のあるカラム数を出力     print ("Your selected dataframe has " + str(df.shape[1]) + " columns.\n"\     "There are " + str(mis_count_table.shape[0]) +" columns that have missing values.")     return mis_count_table missing_values_df = missing_values_table(df) | 
他のカラムに注目
統計量
| 1 2 3 4 5 6 | # 特定のカラムにおいて各値ごとの個数 df['カラム名'].value_counts() # カテゴリカルなデータだけの統計量を表示 # df.describe()でinclude='all'とすると出現していた部分 df.select_dtypes('object').describe() | 
グラフで図示
| 1 2 3 4 5 6 7 8 | #ヒストグラム df['カラム名'].plot.hist() #複数のカラムでのヒストグラムと複数のカラム間の関係性グラフ sns.pairplot(df[["カラム名1","カラム名2","カラム名3"]]) #箱ひげ図 plt.boxplot([df['カラム名1'],df['カラム名2']]) | 
データの加工
ラベルエンコーディングとone-hotエンコーディング