Почему я не могу создать корреляционную матрицу с большим количеством значений

#python-3.x #dataframe #correlation

#python-3.x #фрейм данных #корреляция

Вопрос:

У меня есть CSV-файл, который выглядит примерно так введите описание изображения здесь

Я создаю корреляционную матрицу с помощью panda без проблем, но когда значения столбцов становятся большими (более 500), ничего не происходит, матрица пуста, как будто все удаляется само по себе, и я понятия не имею, в чем проблема

Комментарии:

1. Не могли бы вы предоставить какой-нибудь код, который вы уже пробовали? Кстати, проверили, есть ли у вас пустые ячейки в вашем фрейме данных?

2. В моем коде нет ничего особенного, это просто использование pandas для csv и создание корреляционной матрицы со значениями. Я использовал код для удаления пустых ячеек, но, возможно, он работает неправильно, могут ли пустые значения быть проблемой?

3. Да, это может создать проблему. Запустите этот код, чтобы увидеть, есть ли у вас пустые строки: df_name.isna().sum()

4. похоже, у меня есть пара, которая вернула true для пустой строки. dataframe = dataframe.replace(«, np.nan) dataframe = dataframe.dropna(ось =»столбцы», как =»любой») я использую этот код, чтобы удалить его, но он явно не работает

Ответ №1:

Можете ли вы попробовать этот код?

 # Import libraries
import matplotlib.pyplot as plt
import seaborn as sns

# In case you want correlation matrix for specific columns from df_full
df_regr2 = df_full[['var1', 'var2', 'var3']]
    

# Get correlations
df_corr2 = df_regr2.corr()

np.ones_like(df_corr2, dtype=np.bool)

fig, ax = plt.subplots(figsize=(8, 6))

ax.set_title('Title Name')

# Mask
mask = np.triu(np.ones_like(df_corr2, dtype=np.bool))

# Adjust mask and df
mask = mask[1:, :-1]
corr = df_corr2.iloc[1:,:-1].copy()

# Plot heatmap
sns.heatmap(corr, mask=mask, annot=True, fmt=".2f", cmap=plt.get_cmap('RdYlGn'),
           vmin=-1, vmax=1, cbar_kws={"shrink": .8})
# Yticks
plt.yticks(rotation=0)
plt.show()