获取错误:AttributeError:“list”对象没有属性“drop”我的错误在哪里?

2024-04-18 23:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我为ML制作模型而编写的代码

import pandas  as pd
import numpy as np
import sklearn
from sklearn import linear_model
from sklearn.utils import shuffle

data = pd.read_csv("student-mat.csv", sep=";")

data = [["G1", "G2", "G3", "studytime", "failures", "absences"]]

predict = "G3"

X = np.array(data.drop([predict], 1))
y = np.array(data[predict])

x_train, x_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, test_size = 0.1)

linear = linear_model.LinearRegression()

linear.fit(x_train, y_train)
acc = linear.score(x_test, y_test)
print(acc)



linear.fit(x_train, y_train)
acc = linear.score(x_test, y_test)
print(acc)

这就是我遇到的错误:

Traceback (most recent call last):
  File "C:/Users/WORK/Desktop/ML_AI/Projects/ML_AI1/Regression Working File.py", line 13, in <module>
    X = np.array(data.drop([predict], 1))
AttributeError: 'list' object has no attribute 'drop'

Process finished with exit code 1

我哪里出了问题,我应该改变什么?


Tags: testimportdatamodelasnptrainsklearn
3条回答

是否要删除“预测”以进行估计
这就是放弃“预测”的答案。您应该使用“删除”来删除“预测”的值

data = ["G1", "G2", "G3", "studytime", "failures", "absences"]
predict = "G3"
data.remove(predict)
    
X = np.array(data)

运行此代码时,可以获得以下值

['G1', 'G2', 'studytime', 'failures', 'absences']

试着改变

X = np.array(data.drop([predict], 1))

进入

X = np.array(data.drop(columns=[predict], 1))

pd.DataFrame.drop如果未指定轴,则尝试删除名为“G3”的索引而不是列

非常感谢我刚刚调整了这个

data = [["G1", "G2", "G3", "studytime", "failures", "absences"]]

为此:

data = data[["G1", "G2", "G3", "studytime", "failures", "absences"]]

这解决了我的问题,谢谢你的回复

相关问题 更多 >