Python 機械学習のためのデータ前処理の前の下処理。頻出16「pandas」

 本記事では、データの前処理以前に使用する16個の雛形コードを載せました。例えば、csvファイルを読み込み後に必要な列だけを抽出したり、列を指定して単位を変換したり、特定の列の特定の数値を欠損値NaNに変換したり、行列散布図や基本統計量で飛び値のチェックやカテゴリ変数決めのためにデータチェックするための頻出コード一覧です。

# 1. csvファイルを読み込む
import pandas as pd
file_path = './data.csv' df = pd.read_csv(file_path,
header = 0, # ヘッダー行
skiprows = [1, 2], # 飛ばす行をリストで指定
encoding='utf-8') # 2. 必要なデータ列を抽出する data_list = ['orange', 'apple', 'grape', 'price', 'amount'] df2 = df[data_list] # 3. 単位を調整する df3 = df2.copy() df3['orange'] = df3['orange'] / 1000 df3['apple'] = df3['apple'] / 1000 # 4. 列名を変更する df4 = df3.rename(columns = { 'orange': 'orange_k', 'apple': 'apple_k'} )
# 5. 分析するデータを抽出 # 目的変数名 y_target = 'price' # 説明変数名のリスト x_list = ['orange', 'apple', 'grape'] xy_list = x_list + [y_target] df5 = df4[xy_list] # 6.(必要であれば)0を欠損値NaNに変換する import numpy as np df6 = df5.copy() df6[y_target] = df6[y_target].replace([0], np.nan) # 7. 欠損値の確認 print(df6.isna().sum()) # 8. 欠損値のある行を削除 df7 = df6.dropna(axis=0) # 9. 基本統計量の確認 df7_describe = df7.describe() df7_describe_t = df7_describe.transpose() print(df7_describe_t) # 10. ヒストグラムを作成する import matplotlib import matplotlib.pyplot as plt fig = plt.figure(figsize(6, 6), dpi=120) ax = fig.add_subplot(1, 1, 1) plt.subplots_adjust(left=0.1, right=0.95, bottom=0.1, top=0.95) df7.hist(ax=ax) plt.tight_layout() # 11. 行列散布図 import seaborn as sns sns.set_context('talk') g = sns.pairplot(df7, kind = 'reg', markers=",", diag_kind="kde", diag_kws=dict(shade=True), ) # 12. 各列の型を調べる print(df7.dtypes) # 13. 指定区間のデータを抽出 df7_extract = df7[(df7['grape'] = 100)] # 14. 散布図 # プロットするデータをxy_dfで抽出 xy_df = df7_extract[['orange', 'apple', y_target]] sns.set('notebook', 'whitegrid', 'dark', font_scale=1.4) # グラフに格子状 sns.lmplot( 'orange', # x y_target, # y xy_df, hue = 'apple', palette = 'bwr', order = 2, ) ax = plt.gca() y_min, y_max = ax.get_ylim() ax.set_ylim(0, y_max) # 15. 昇順に並べる df7_s = df7.sort_values(y_target, ascending=True) # 16. csvファイルに保存 df7_s.to_csv('00_extracted_data_' + y_target + '.csv')

以上

<広告>