【问题标题】:How do I convert data from a Scikit-learn Bunch object to a Pandas DataFrame?如何将数据从 Scikit-learn Bunch 对象转换为 Pandas DataFrame?
【发布时间】:2018-07-23 23:49:46
【问题描述】:

我使用以下代码将 sk learn 乳腺癌数据集转换为数据框:我没有得到输出?我是python的新手,不知道出了什么问题。

def answer_one(): 

    import numpy as np
    import pandas as pd
    from sklearn.datasets import load_breast_cancer 
    cancer = load_breast_cancer()     
    data = numpy.c_[cancer.data, cancer.target]
    columns = numpy.append(cancer.feature_names, ["target"])
    return pandas.DataFrame(data, columns=columns)

answer_one()

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    以下代码有效

    def answer_one(): 
        import numpy as np
        import pandas as pd
        from sklearn.datasets import load_breast_cancer 
        cancer = load_breast_cancer()     
        data = np.c_[cancer.data, cancer.target]
        columns = np.append(cancer.feature_names, ["target"])
        return pd.DataFrame(data, columns=columns)
    
    answer_one()
    

    之前你的代码不起作用的原因是你在分别定义为nppd之后尝试再次调用numpypandas包。

    但是,我建议在脚本的开头,在函数定义之外完成包的加载和重新定义。

    【讨论】:

    • def answer_one(): data = numpy.c_[cancer.data,cancer.target] columns = numpy.append(cancer.feature_names, ["target"]) return pandas.DataFrame(data, columns=columns) answer_one()
    • 我试过没有定义它们。但没有得到输出。 return 语句有什么问题吗?
    【解决方案2】:

    使用熊猫

    这里有一个很好的答案:How to convert a Scikit-learn dataset to a Pandas dataset?

    bundle 对象中的键让您了解要为哪些数据创建列。

    df = pd.DataFrame(cancer.data, columns=cancer.feature_names)
    df['target'] = pd.Series(cancer.target)
    

    【讨论】:

      【解决方案3】:
      dataframe = pd.DataFrame(data=cancer.data, columns=cancer.feature_names)
      dataframe['target'] = cancer.target
      return dataframe
      

      【讨论】:

      • 欢迎来到 Stack Overflow!纯代码答案并不是特别有用。请简要说明此代码如何解决问题。
      【解决方案4】:

      从 scikit-learn 0.23 开始,您可以执行以下操作来获取 DataFrame 并保存一些击键:

      df = load_breast_cancer(as_frame=True)
      df.frame
      

      【讨论】:

      • 由于某种原因在 Google Colab 中不适合我。 Colab 有 0.22,但我使用 pip 升级到 0.24(version 显示更新的版本),仍然使用 as_frame=True)仍然返回一堆:-/
      猜你喜欢
      • 1970-01-01
      • 2019-08-14
      • 2016-11-01
      • 2018-09-19
      • 2021-02-12
      • 2020-05-13
      • 1970-01-01
      • 2015-09-15
      • 2017-01-13
      相关资源
      最近更新 更多