python - 如何在 Python sklearn 中加载数据框?
问题描述
我在 IPython Notebook 中进行了一些计算,最终得到了一个df
尚未保存在任何地方的数据框。在同一个 IPython Notebook 中,我想使用 sklearn 来处理这个数据框。
df 是一个有 4 列的数据框:id(字符串)、值(int)、额定值(布尔值)、分数(浮点数)。我正在尝试确定什么对分数的影响最大,就像在这个例子中一样。他们在那里加载了一个标准数据集,但我想在笔记本中使用我自己的数据框。
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from matplotlib import pyplot as plt
plt.rcParams.update({'figure.figsize': (12.0, 8.0)})
plt.rcParams.update({'font.size': 14})
dataset = df
X = pd.DataFrame(dataset.data, columns=dataset.feature_names)
y = dataset.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=12)
但我得到了 AttributeError'DataFrame' object has no attribute 'data'
解决方案
好的,首先进行一些澄清:在您的示例中,尚不清楚 load_boston() 函数的作用。他们只是导入它。无论该函数返回什么,都有一个名为“数据”的属性。
他们使用这条线:
X = pd.DataFrame(boston.data, columns=boston.feature_names)
创建一个数据框。您的情况有所不同,因为您已经有一个数据框,而数据框没有属性“.data”。因此,您得到的错误是:“DataFrame”对象没有属性“数据”。
你需要的只是
X = df
y = df['score']
# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=12)
或者如果您只需要数据框中的一些列:
# set data
list_of_columns = ['id','value']
X = df[list_of_columns]
# set target
target_column = 'score'
y = df[target_column]
# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=12)
推荐阅读
- r - 生成在由 R 中的分类变量定义的时间窗口上计算的平均列
- vba - 您可以在 vba 的子程序中引用控件名称吗?
- r - 将一天分成多个部分
- quarkus - 我们如何在性能测试期间监控 GraalVM 原生镜像的内存、线程、CPU 等?
- javascript - 'void,+,-,~,!' 是什么意思 前面的函数呢?
- java - 无法在域模式下创建 gc 日志
- database - 数据库建模、结构和关系
- laravel - ReferenceError: Vue 未定义 heroku laravel
- c - 为什么等待 `clock` 值改变 5,000 个单位不会导致延迟 5 秒?
- camunda - 流畅的构建器 API 中是否有终止事件?