【问题标题】:How can I solve " module 'pandas' has no attribute 'scatter_matrix' " error?如何解决“模块‘pandas’没有属性‘scatter_matrix’”错误?
【发布时间】: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

标签: python-3.x pandas


【解决方案1】:

这个方法在pandas.plotting-docspandas.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()
    

    【讨论】:

    【解决方案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()
      

      【讨论】:

        猜你喜欢
        • 2022-06-21
        • 1970-01-01
        • 1970-01-01
        • 2022-07-12
        • 2021-12-10
        • 2021-10-15
        • 2020-09-07
        • 2021-12-27
        相关资源
        最近更新 更多