Ошибка возникает из-за несоответствия между количеством столбцов в исходном датафрейме и количеством столбцов, которые вы пытаетесь использовать при создании нового датафрейма.
from sklearn import preprocessing
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
np.random.seed(34)
# сгенерируем датасет из случайных чисел
df = pd.DataFrame({
'beta': np.random.beta(5, 1, 1000) * 60,
'exponential': np.random.exponential(10, 1000),
'normal_p': np.random.normal(10, 2, 1000),
'normal_l': np.random.normal(10, 10, 1000),
})
# инициализируем стандартизатор StandardScaler
s_scaler = preprocessing.StandardScaler()
# кодируем исходный датасет
df_s = s_scaler.fit_transform(df)
# Преобразуем промежуточный датасет в полноценный датафрейм для визуализации
df_s = pd.DataFrame(df_s, columns=df.columns)
fig, ax1 = plt.subplots(ncols=1, figsize=(10, 8))
ax1.set_title('Распределения после StandardScaler')
sns.kdeplot(data=df_s, ax=ax1)
plt.legend(df_s.columns)
print(df_s.describe())
plt.show()