あまえびんのメモ帳

あまえびんのメモ帳

あまえびんの趣味や日頃の困ったことについて投稿します。

【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())