Матрицы разброса Python из фрейма данных со слишком большим количеством столбцов
Я новичок в Python и науке о данных, и в настоящее время я работаю над проектом, основанным на очень большом фрейме данных с 75 столбцами. Я занимаюсь исследованием данных и хочу проверить возможные корреляции между столбцами. Я знаю, что для меньших фреймов данных я могу использовать pandas plotting.scatter_matrix() в фрейме данных, чтобы сделать это. Однако в моем случае это дает матрицу 75x75 - и я даже не могу визуализировать отдельные графики.
Альтернативой может быть создание списков из 5 столбцов и многократное использование scatter_matrix, но этот метод создаст слишком много матриц рассеяния. Например, с 15 столбцами это будет:
import pandas as pd
df = pd.read_csv('dataset.csv')
list1 = [df.iloc[:, i] for i in range(5)]
list2 = [df.iloc[:, i+5] for i in range(5)]
list3 = [df.iloc[:, i+10] for i in range(5)]
pd.plotting.scatter_matrix(df_acoes[list1])
pd.plotting.scatter_matrix(df_acoes[list2])
pd.plotting.scatter_matrix(df_acoes[list3])
Чтобы использовать тот же метод с 75 столбцами, мне пришлось бы продолжить, пока list15
. Это выглядит очень неэффективно. Интересно, есть ли лучший способ изучить корреляции в моем наборе данных.
1 ответ
Проблема здесь в меньшей степени в технической части. Изготовление участков (в номере 5625) займет достаточно много времени. Кроме того, графики займут немного памяти.
Поэтому я бы задала несколько вопросов, чтобы обойти проблемы:
- Неужели действительно необходимо иметь все эти точечные диаграммы?
- Могу ли я заранее уменьшить габариты?
- Почему у меня такое большое количество измерений?
Если графики действительно полезны, вы можете создать их самостоятельно и склеить или подождать, пока функция будет готова.