Решите задачу по Python
Ответы
import numpy as np
import pandas as pd
df = pd.read_csv('input.csv')
# Определяем пустой список для результатов
results = []
# Проходим по каждому столбцу
for col in df.columns[1:]: # Исключаем первый столбец, так как он содержит индексы
max_corr = 0 # Сначала устанавливаем максимальную корреляцию как 0
for other_col in df.columns[1:]:
if col != other_col: # Исключаем корреляцию столбца самого с собой
correlation = abs(df[col].corr(df[other_col]))
if correlation > max_corr:
max_corr = correlation
results.append(round(max_corr, 2))
print(results)
В коде мы проходим по каждому столбцу, находим его корреляцию с каждым другим столбцом и сохраняем максимальное абсолютное значение корреляции для каждого столбца в списке results.
import pandas as pd
def get_max_correlations_v2(df):
if len(df.columns) <= 2: # Учитывая столбец с индексами, реальное количество столбцов с данными будет <= 1
return [1.0]
for col in df.columns[1:]:
max_corr = 0
for other_col in df.columns[1:]:
if col != other_col:
correlation = abs(df[col].corr(df[other_col]))
if correlation > max_corr:
max_corr = correlation
if np.isnan(max_corr):
max_corr = 0.0
results.append(round(max_corr, 2))
return results
# Загрузка данных
df = pd.read_csv("input.csv")
# Получение максимальных корреляций
results = get_max_correlations_v2(df)
print(results)