パターンマッチで列を選択

サンプルデータ

import pandas as pd

X = pd.read_csv("../data/sample.csv")
X.head()
元号和暦西暦人口総数町名
0大正9.01920.0394748A町
1大正9.01920.031421B町
2大正9.01920.0226993C町
3大正9.01920.0253689D町
4大正9.01920.0288602E町

sklearn.compose.make_column_selector

sklearn.compose.make_column_selector を使用します。pattern="暦"で暦が含まれる列を選択し、StandardScalerを適用します。

from sklearn.preprocessing import StandardScaler
from sklearn.compose import make_column_transformer
from sklearn.compose import make_column_selector

n_ss = StandardScaler()

# 暦が含まれる列のみスケーリング
ct = make_column_transformer(
    (n_ss, make_column_selector(pattern="暦")), sparse_threshold=0
)
X_transform = ct.fit_transform(X)

# 変換後のテーブル
pd.DataFrame(X_transform).head()
01
0-0.946623-1.665466
1-0.946623-1.665466
2-0.946623-1.665466
3-0.946623-1.665466
4-0.946623-1.665466