如何将数据从 Scikit-learn Bunch 对象转换为 Pandas DataFrame?

sol*_*net 6 python pandas

我使用以下代码将 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()
Run Code Online (Sandbox Code Playgroud)

小智 8

使用熊猫

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

Bundle 对象中的键让您了解要为其创建列的数据。

df = pd.DataFrame(cancer.data, columns=cancer.feature_names)
df['target'] = pd.Series(cancer.target)
Run Code Online (Sandbox Code Playgroud)


jef*_*ale 8

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

df = load_breast_cancer(as_frame=True)
df.frame
Run Code Online (Sandbox Code Playgroud)


小智 6

以下代码有效

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()
Run Code Online (Sandbox Code Playgroud)

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

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