如何解决“模块‘pandas’没有属性‘scatter_matrix’”错误?

Posted

技术标签:

【中文标题】如何解决“模块‘pandas’没有属性‘scatter_matrix’”错误?【英文标题】:How can I solve " module 'pandas' has no attribute 'scatter_matrix' " error? 【发布时间】:2019-08-19 00:20:17 【问题描述】:

我正在尝试使用下面的代码在 Jupyter Notebook 中运行 pd.scatter_matrix() 函数:

import matplotlib.pyplot as plt
import pandas as pd

# Load some data
iris = datasets.load_iris()
iris_df = pd.DataFrame(iris['data'], columns=iris['feature_names'])
iris_df['species'] = iris['target']

pd.scatter_matrix(iris_df, alpha=0.2, figsize=(10, 10))
plt.show()

但我得到了 AttributeError: module 'pandas' has no attribute 'scatter_matrix'。 即使在终端中执行conda update pandasconda update matplotlib 命令后,这种情况仍然会发生。

我执行了pd.__version__ 命令来检查我的熊猫版本,它是'0.24.2'。可能是什么问题?

【问题讨论】:

它在plotting 下:请参阅docs 请根据您的版本检查api 【参考方案1】:

这个方法在pandas.plotting-docs和pandas.plotting.scatter_matrix下:

from pandas.plotting import scatter_matrix

scatter_matrix(iris_df, alpha=0.2, figsize=(10, 10))

【讨论】:

我刚接触python,但pandas.plotting不应该已经包含在pandas中了吗?我现在正在运行一个教程,其中给出了问题中的代码,我也想知道为什么它不起作用。但是当使用“from pandas.plotting ...”时,它可以工作。不过,我想知道为什么绘图命令如此特殊,必须手动导入? 貌似在datacamp.com做监督学习课的人来了 @guten_pro 黑客机器学习很棒。你可以在 b-ok.cc 上找到它 @guten_pro,这也是一个很好的资源。我查阅了许多书籍。我的建议是开始阅读;你会找到自己的路的。 @jezreal 你的好答案无处不在。谢谢。【参考方案2】:

另一种选择是只保留 pandas 导入并重写命令 scatter_matrix,如下例所示:

import pandas as pd

pd.plotting.scatter_matrix(iris_df, alpha=0.2, figsize=(10, 10))

【讨论】:

【参考方案3】:

使用

from pandas.plotting._misc import scatter_matrix

不要使用pd.scatter_matrixpandas.scatter_matrix 可以直接拨打scatter_matrix

例如

cmap = cm.get_cmap('gnuplot')
scatter = scatter_matrix(X, c = y, marker = 'o', s=40, hist_kwds='bins':15, 
    figsize=(9,9), cmap = cmap)
plt.suptitle('Scatter-matrix for each input variable')
plt.savefig('fruits_scatter_matrix')
plt.show()

【讨论】:

请阅读editing guide【参考方案4】:

我用过

from pandas.plotting import scatter_matrix

并直接调用scatter_matrix 就像魅力一样。

【讨论】:

【参考方案5】:

用途:

from pandas.plotting import scatter_matrix

代码变成:

import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix

iris = datasets.load_iris()
iris_df = pd.DataFrame(iris['data'], columns=iris['feature_names'])
iris_df['species'] = iris['target']

scatter_matrix(iris_df, alpha=0.2, figsize=(10, 10))
plt.show()

【讨论】:

以上是关于如何解决“模块‘pandas’没有属性‘scatter_matrix’”错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?

如何解决smartgit的冲突问题

如何解决https传输图片的问题