如何将数据从 Scikit-learn Bunch 对象转换为 Pandas DataFrame?
Posted
技术标签:
【中文标题】如何将数据从 Scikit-learn Bunch 对象转换为 Pandas DataFrame?【英文标题】:How do I convert data from a Scikit-learn Bunch object to a 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()
【问题讨论】:
【参考方案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()
之前你的代码不起作用的原因是你在分别定义为np
和pd
之后尝试再次调用numpy
和pandas
包。
但是,我建议在脚本的开头,在函数定义之外完成包的加载和重新定义。
【讨论】:
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)仍然返回一堆:-/以上是关于如何将数据从 Scikit-learn Bunch 对象转换为 Pandas DataFrame?的主要内容,如果未能解决你的问题,请参考以下文章
Bunch 转换为 HDF5 文件:高效存储 Cifar 等数据集
如何将模型 (GLM) 从 h2o 移植到 scikit-learn?