在Google Colab上传Excel并实现线性回归绘图,解决数据读取问题
解决Colab中Excel文件读取与线性回归分析问题
一、修复Excel文件读取错误
你的代码读取失败的核心问题是pd.read_excel的参数使用错误:第二个参数应该传入工作表名称(或索引),而非文件名。另外要确保上传的文件名和代码中调用的完全一致(注意大小写、空格)。
修正后的读取代码:
import io import pandas as pd from google.colab import files # 上传文件 uploaded = files.upload() # 指定文件名(需和上传的文件名完全匹配) file_name = 'Infant Mortality Rates.xlsx' xlsx_file = io.BytesIO(uploaded[file_name]) # 读取Excel:默认读取第一个工作表;若知道具体表名,可传入sheet_name='你的工作表名' df = pd.read_excel(xlsx_file) # 打印数据前5行,确认读取成功 print(df.head())
如果不确定工作表名称,可先执行以下代码查看所有表名:
excel_file = pd.ExcelFile(xlsx_file) print("所有工作表名称:", excel_file.sheet_names)
二、完成线性回归分析
假设你的数据包含自变量(如年份Year)和因变量(如婴儿死亡率Mortality_Rate),以下是完整的分析和绘图代码:
import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression import numpy as np # 处理缺失值(根据数据情况可选,这里删除含缺失值的行) df = df.dropna(subset=['Year', 'Mortality_Rate']) # 准备模型输入:自变量需为二维数组 X = df[['Year']].values y = df['Mortality_Rate'].values # 训练线性回归模型 model = LinearRegression() model.fit(X, y) # 输出模型参数 print(f"回归系数: {model.coef_[0]:.4f}") print(f"截距项: {model.intercept_:.4f}") # 绘制原始数据与回归线 plt.scatter(X, y, color='deepskyblue', label='实际数据') y_pred = model.predict(X) plt.plot(X, y_pred, color='crimson', linewidth=2, label='拟合回归线') plt.xlabel('年份') plt.ylabel('婴儿死亡率') plt.title('婴儿死亡率随年份变化的线性回归分析') plt.legend() plt.show()
注意事项
- 替换代码中的
Year和Mortality_Rate为你数据中实际的列名 - 若数据格式异常,可通过
df.info()查看数据类型、缺失值情况,针对性处理
内容的提问来源于stack exchange,提问作者Tdirk
相关产品推荐
相关产品推荐

