如何在导入Excel的DataFrame中指定线性回归的X、Y列?
线性回归中特征列与目标列的引用方法
你的列引用写法是正确的
你当前的代码写法完全符合pandas与sklearn线性回归模型的输入要求:
X = df[["ColumnName1", "ColumnName2", "ColumnName3"]] y = df["ColumnName4"]
- 用双层方括号
[[]]提取的X是DataFrame格式,适配sklearn模型要求的二维特征输入 - 用单层方括号
[]提取的y是Series格式,满足模型对一维目标变量的输入要求
优化你的数据导入代码
现有导入流程存在冗余,pd.read_excel返回的本身就是DataFrame,无需额外调用pd.DataFrame()转换,同时注意head()仅会保留前5行数据,仅适合测试,训练模型时请移除:
import pandas as pd # 注意:确保file.direction是有效的文件路径变量 file_name = file.direction # 直接读取Excel为DataFrame df = pd.read_excel(file_name, sheet_name="File Name", header=0) # 仅测试场景下保留前5行,训练模型请删除此行 df = df.head()
实用补充技巧
- 不确定列名时,可通过
print(df.columns)输出所有列名,确保引用的列名与Excel表格完全一致(含大小写、空格、特殊字符) - 若特征列是连续的,可按索引位置简化提取:
X = df.iloc[:, 0:3](iloc[:, a:b]表示取第a到第b-1列) - 若需构建多输出回归模型,目标列也可用双层方括号提取:
y = df[["ColumnName4", "ColumnName5"]]
内容的提问来源于stack exchange,提问作者alfredocarrascor
相关产品推荐
相关产品推荐

