You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas和Seaborn绘制Excel数据时遇'ufunc isfinite'错误求助

问题排查与解决方案

可能的问题点

  • 数据中存在非数值型的空值变体:虽然 dtype 显示为 float64,但可能包含 Pandas 无法正常识别的异常值(比如 Excel 中的#VALUE!、#N/A等,被强制转换为 float64 后引发计算异常)。
  • Seaborn 调用参数不规范:未明确指定x、y列,或传入了不符合折线图要求的参数格式。

分步解决

  1. 彻底校验数据有效性
    运行以下代码排查数据中的异常:

    import pandas as pd
    import numpy as np
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    # 读取Excel文件
    df = pd.read_excel("你的文件路径.xlsx")
    
    # 查看数据类型与基本信息
    print(df.info())
    
    # 检查两列是否存在非数值元素
    print("eps列非数值元素数:", df['eps'].apply(lambda x: not np.isreal(x)).sum())
    print("sigma列非数值元素数:", df['sigma'].apply(lambda x: not np.isreal(x)).sum())
    
    # 统计空值数量
    print(df[['eps', 'sigma']].isna().sum())
    

    若发现非数值元素,强制转换并清理异常值:

    # 强制转换为数值型,无法转换的设为NaN
    df['eps'] = pd.to_numeric(df['eps'], errors='coerce')
    df['sigma'] = pd.to_numeric(df['sigma'], errors='coerce')
    
    # 清理含空值的行(或根据需求用均值/中位数填充)
    df = df.dropna(subset=['eps', 'sigma'])
    
  2. 规范绘制折线图并保存
    明确指定绘图参数,完成绘图与保存:

    # 设置绘图风格
    sns.set_style("whitegrid")
    
    # 创建画布并绘制折线图
    plt.figure(figsize=(10, 6))
    sns.lineplot(data=df, x='eps', y='sigma', marker='o', color='#1f77b4')
    
    # 添加图表标注
    plt.title("eps 与 sigma 关系折线图", fontsize=14)
    plt.xlabel("eps", fontsize=12)
    plt.ylabel("sigma", fontsize=12)
    
    # 保存图像(支持png、jpg、svg等格式)
    plt.savefig("eps_sigma_trend.png", dpi=300, bbox_inches='tight')
    plt.show()
    
  3. 额外排查项
    若仍报错,检查索引是否存在异常:

    # 重置索引,排除非数值索引干扰
    df = df.reset_index(drop=True)
    

内容的提问来源于stack exchange,提问作者Gash Guri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 17:41:08