【问题标题】:How do I load a dataframe in Python sklearn?如何在 Python sklearn 中加载数据框?
【发布时间】:2021-09-12 07:00:37
【问题描述】:

我在 IPython Notebook 中进行了一些计算,最终得到了一个尚未保存在任何地方的数据框 df。在同一个 IPython Notebook 中,我想使用 sklearn 来处理这个数据框。

df 是一个有 4 列的数据框:id (string), value(int),rated(bool), score(float)。我正在尝试确定在example 中对分数的影响最大的因素。他们在那里加载了一个标准数据集,但我想在笔记本中使用我自己的数据框。

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)

但我得到 'DataFrame' object has no attribute 'data' 的 AttributeError

【问题讨论】:

  • 您似乎正在尝试从已经是数据框的东西中创建数据框?
  • @Geom So X = dataset.data?在这种情况下如何添加额外的列?或者,我不能将 df 保存为 csv 并应用我的帖子中的语法吗?唯一的问题是数据框很大,它冻结了我的机器。
  • 抱歉,当您不清楚“df”是什么或您想用“columns=dataset.feature_names”做什么时,很难做出假设。你能提供更多关于你想要达到的目标的细节吗?

标签: python pandas dataframe scikit-learn


【解决方案1】:

好的,首先澄清一下: 在您的示例中,尚不清楚 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)

【讨论】:

  • 它确实有效,谢谢!唯一的问题是后来它不能将字符串转换为浮点数,因为 id 是字符串类型。但我认为这是应该在训练测试拆分之前解决的问题。
  • 是的,您应该提前修复数据类型。你可以使用 astype()。 df = df.astype({"a": int, "b": complex})
猜你喜欢
  • 2023-03-08
  • 2018-04-11
  • 2016-06-25
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 1970-01-01
  • 2018-05-05
相关资源
最近更新 更多