【python】pandasでよく使うデータ前処理文法
pandasで個人的によく使うデータ前処理するときの関数をまとめました。
データ抽出
列抽出 dfからfeature_1とfeature_2のみ取り出す
train.loc[:,[feature_1,feature_2]]
dfからfeature列の0以下のもの行を表示
df.loc[df[feature] < 0]
条件から代入する時
df.loc[df['A'] % 2 == 0, 'C'] = 'even' df.loc[df['B'] % 2 != 0, 'C'] = 'odd'
列削除
df.drop(feature,axis=1)
データをくっつける
dfにmergeのIDをもとにして左にくっつける
df = df(merge_, on = 'ID', how = 'left')
インデックスのリセット
よく、行を削除するとインデックスが歯抜けになるので、それを直すのによく使います。 drop=Trueを入れることで、もとのindexを列として保存しません。
df.reset_index(drop=True)
データをソートする
ascending Falseで降順
df.sort_values(feature, ascending=False)
型の変換
csvやエクセルファイルからデータを読み込むと文字列型になっていることがあるので、これで直します。 例ではintになおしてますが、floatでもOKです。
df[feature].astype(int)
対数ならこっち
df[feature].apply(lambda x: np.log10(x))
カテゴリ型をダミー化
featureを入れなかったらカテゴリの列を全部やってくれます。
df_dummy = pd.get_dummies(df[feature])
欠損値処理
欠損値を消す
df.dropna(subset=[feature], inplace = True)
欠損値を平均値で埋める df[feature].fillna(df[feature].mean())