#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()