45_Pandas.DataFrame计算每列之间的相关系数并用热图可视化

45_Pandas.DataFrame计算每列之间的相关系数并用热图可视化

使用corr()方法计算pandas.DataFrame中各列之间的相关系数。

这里,将描述以下内容。

  • pandas.DataFrame.corr()的基本用法
  • 数据类型为数值型或布尔型的列的计算目标
  • 排除并计算缺失值 NaN
  • 指定如何计算相关系数:argument method
  • 使用热图可视化相关系数:seaborn

以下面的pandas.DataFrame为例。

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.DataFrame({'A': range(5),
                   'B': [x**2 for x in range(5)],
                   'C': [x**3 for x in range(5)]})

print(df)

pandas.DataFrame.corr()的基本用法

从 pandas.DataFrame 对象调用 corr() 方法计算每列之间的相关系数。 结果在 pandas.DataFrame 中返回。

df_corr = df.corr()
print(df_corr)
print(type(df_corr))

数据类型为数值型或布尔型的列的计算目标

添加字符串和布尔列以进行说明。

df['D'] = list('abcde')
df['E'] = [True, False, True, True, False]
print(df)

print(df.dtypes)

corr()方法排除数据类型object(字符串)的列,计算numeric(int、float)和bool类型的列之间的相关系数。

对于 bool 类型,True 被视为 1,False 被视为 0。

df_corr = df.corr()
print(df_corr)

排除并计算缺失值 NaN

准备一个包含缺失值 Nan 的 pandas.DataFrame 对象以供解释。

df_nan = df.copy()
df_nan.iloc[[2, 3, 4], 1] = np.nan
print(df_nan)

在corr()方法中,剔除缺失值NaN,计算相关系数。

df_nan_corr = df_nan.corr()
print(df_nan_corr)

指定如何计算相关系数:method

在corr()方法中,可以通过argument方法指定计算相关系数的方法。

从以下三种类型中选择。

  • ‘pearson’:皮尔逊积矩相关系数(默认)
  • ‘kendall’:肯德尔等级相关系数
  • ‘spearman’:斯皮尔曼等级相关系数

使用热图可视化相关系数:seaborn

Python 的可视化库 seaborn 可以很容易地将 pandas.DataFrame 可视化为热图,就像使用 corr() 一样。

sns.heatmap(df_corr, vmax=1, vmin=-1, center=0)
plt.savefig('./data/45/seaborn_heatmap_corr_example.png')

45_Pandas.DataFrame计算每列之间的相关系数并用热图可视化

原始数据有很多列(特征),但是如上所述, corr() 方法排除了数据类型为 object 的列。

df_house = pd.read_csv('./data/45/house_prices_train.csv', index_col=0)

print(df_house.shape)

print(df_house.dtypes.value_counts())

df_house_corr = df_house.corr()

print(df_house_corr.shape)

用 seaborn.heatmap() 函数可视化。

fig, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(df_house_corr, square=True, vmax=1, vmin=-1, center=0)
plt.savefig('./data/45/seaborn_heatmap_house_price.png')

45_Pandas.DataFrame计算每列之间的相关系数并用热图可视化

Original: https://blog.csdn.net/qq_18351157/article/details/119214494
Author: 饺子大人
Title: 45_Pandas.DataFrame计算每列之间的相关系数并用热图可视化

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/674421/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球