在所有列上迭代/循环

2024-09-24 10:28:39 发布

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

我刚接触pandas,还在学习,我想问一下,如果使用iloc[:,1]是按索引定位列,如果我想从1-10中获取所有列,如何获取所有列?它必须遍历所有列,还是只能使用iloc[]逐个完成?因为我想用x中的所有变量预测y(一列)的值,例如:col[0]到col[9]。我事先已经试过了,但它说

Series' objects are mutable, thus they cannot be hashed

代码:

regrmodel = linear_model.LinearRegression()
print("Y train",y_train)
regrmodel.fit(X_train, y_train)

y_test_pred = regrmodel.predict(X_test)
y_test_pred = pd.Series(y_test_pred)
y_test_pred.index = y_test.index

plt.scatter(X_test.iloc[:,9], y_test, color='red',label='Actual data')
plt.scatter(X_test.iloc[:,9], predicted_test_data, color='green',label='Predicted data')

Tags: 定位testpandasdataindextrainpltcol
2条回答

也许试试

X_test.iloc[:,range(0,10)]

这将为您提供一个列为0-9的数据帧,然后您可以在for循环中处理每一列

或者,您可以通过调用

X_test.columns

然后,您可以迭代列表并通过调用

X_test[your_column_name]

这将为您提供一个新的数据帧,其中前十列为X_test

X_test[X_test.columns[:10]]

相关问题 更多 >