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

Python提取XYZ数据存CSV/Excel遇异常,求解决方案

解决3D绘图数据提取与Excel保存问题

问题分析

  1. CSV文件无报错但找不到:你使用的是相对路径,文件默认生成在Python脚本的当前工作目录中,大概率是你没找对位置。
  2. to_excel报错:pandas保存Excel需要依赖第三方库(如openpyxl),默认环境未安装该库,直接调用会触发报错。

解决方案

1. 确认CSV文件位置

在代码中添加打印当前工作目录的代码,即可明确文件生成路径:

import os
print("当前工作目录:", os.getcwd())

2. 安装Excel依赖库

运行以下命令安装openpyxl(支持.xlsx格式文件读写):

pip install openpyxl

3. 修改后的完整代码

下面的代码会同时生成CSV和Excel文件,且为数据添加列名,方便后续Excel分析:

import matplotlib.pyplot as plt  
from mpl_toolkits.mplot3d import Axes3D  
from matplotlib import cm  
from matplotlib.ticker import LinearLocator, FormatStrFormatter  
import pandas as pd
import numpy as np
import os  # 用于获取当前目录及文件绝对路径

# 打印当前工作目录,便于查找生成的文件
print("当前工作目录:", os.getcwd())

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
N = np.arange(0, 10, 1)
M = np.arange(0, 15, 1)
N, M = np.meshgrid(N, M)
DNM = 3992.88*N - 2585.96*M

# 展平数据并筛选指定范围的Z值
x, y, z = N.ravel(), M.ravel(), DNM.ravel()
limits = np.logical_and(z >= -25000, z <= 20000)
x, y, z = x[limits], y[limits], z[limits]

# 将数据转为DataFrame并添加列名,提升可读性
xyz = np.column_stack((x, y, z))
df = pd.DataFrame(xyz, columns=['N', 'M', 'DNM'])

# 保存CSV文件
csv_path = "xyz_data.csv"
df.to_csv(csv_path, index=False)
print(f"CSV文件已保存至:{os.path.abspath(csv_path)}")

# 保存Excel文件(需提前安装openpyxl)
excel_path = "xyz_data.xlsx"
df.to_excel(excel_path, index=False, engine='openpyxl')
print(f"Excel文件已保存至:{os.path.abspath(excel_path)}")

# 若需要显示3D绘图,取消以下注释
# surf = ax.plot_surface(N, M, DNM, rstride=1, cstride=1, cmap=cm.jet,
#        linewidth=0, antialiased=False)
# ax.set_zlim(-25000, 20000)
# ax.zaxis.set_major_locator(LinearLocator(10))
# ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
# fig.colorbar(surf, shrink=0.5, aspect=10)
# plt.show()

关键修改说明

  • 新增os模块,通过打印当前目录和文件绝对路径,彻底解决找不到生成文件的问题
  • 为DataFrame添加列名,让Excel中的数据更易理解
  • 保存Excel时指定engine='openpyxl',解决依赖库缺失导致的报错

内容的提问来源于stack exchange,提问作者Mohamed Osman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:55:31