pandas中的.corr()函数怎么用 以及怎么可视化correlation比较好?

Robin_TY - PhD@CSU,研究方向:计算机视觉,模式识别

赞同来自: fish 凌剑

corr()可以计算两列值得相关系数,默认用的是pearson相关系数(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.corr.html )。 相关系数是一个值,没法可视化的。如果想看两列数据的 相关性,可以考虑seaborn里的pairplot,课堂上有讲,或者参考这条链接:http://seaborn.pydata.org/examples/many_pairwise_correlations.html

重新改回云烟桑

赞同来自:

使用heatmap()可视化。贴一段股票数据可视化的代码,仅供参考。columns 是股票代码收盘价,index是date。 越正相关越绿,越负相关越红,不相关黄色。 =12ptdef visualize_data(): =12pt    df = pd.read_csv('stock_data_joint.csv') =12pt    df_corr = df.corr() =12pt    data = df_corr.values   =12pt    fig = plt.figure() =12pt    ax = fig.add_subplot(111)   =12pt    heatmap = ax.pcolor(data,cmap = plt.cm.RdYlGn) =12pt    fig.colorbar(heatmap) =12pt    ax.set_xticks(np.arange(data.shape[0] + 0.5),minor = False) =12pt    ax.set_yticks(np.arange(data.shape[1]  + 0.5),minor = False) =12pt    ax.invert_yaxis() =12pt    ax.xaxis.tick_top()   =12pt    column_labels = df_corr.columns =12pt    row_labels = df_corr.index   =12pt    ax.set_xticklabels(column_labels) =12pt    ax.set_yticklabels(row_labels)   =12pt    plt.xticks(rotation = 90) =12pt    heatmap.set_clim(-1,1) =12pt    plt.tight_layout() =12pt    plt.show()   =12ptvisualize_data()

要回复问题请先登录注册