Напишите функцию, которая принимает
pandas.DataFrame и нормализует все числовые столбцы в диапазон от 0 до 1.Пример:
import pandas as pd
data = pd.DataFrame({
'feature1': [10, 20, 30, 40],
'feature2': [1, 2, 3, 4],
'feature3': ['A', 'B', 'C', 'D'] # Не числовой столбец
})
result = normalize_dataframe(data)
print(result)
# Ожидаемый результат:
# feature1 feature2 feature3
# 0 0.0 0.0 A
# 1 0.333 0.333 B
# 2 0.667 0.667 C
# 3 1.0 1.0 D
Решение задачи🔽
import pandas as pd
def normalize_dataframe(df):
df_normalized = df.copy()
for col in df.select_dtypes(include='number').columns:
min_val = df[col].min()
max_val = df[col].max()
df_normalized[col] = (df[col] - min_val) / (max_val - min_val)
return df_normalized
# Пример использования:
data = pd.DataFrame({
'feature1': [10, 20, 30, 40],
'feature2': [1, 2, 3, 4],
'feature3': ['A', 'B', 'C', 'D']
})
result = normalize_dataframe(data)
print(result)