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

将DataFrame转数组后求和保存CSV遇ValueError:期望1D/2D数组却得到0D数组

问题分析与解决建议

首先,触发Expected 1D or 2D array, got 0D array instead错误的核心原因是你调用np.savetxt时的参数顺序完全混乱了,同时还有文件名重复后缀的问题,咱们一步步来修正:

1. 错误的np.savetxt参数顺序

np.savetxt的标准调用逻辑是:

np.savetxt(保存的文件名, 要保存的数组, 格式字符串, 分隔符, ...)

你原来的代码把格式字符串、文件名、数组的位置全搞反了,这直接导致函数无法正确识别输入的数组,进而抛出维度错误。

2. 重复的.csv后缀

你的filename变量已经通过字符串拼接加上了.csv后缀,不需要在np.savetxt里再额外加一遍,否则会生成类似calculated_xxx.csv.csv的错误文件名。

修正后的完整代码片段

array = dfmain.values
shareArray = array[:1]
shareArray = dividedPV / shareArray
array = shareArray * array
sums = [sum(j) for j in array]
finalArray = np.array(sums, dtype=np.float16)

# 生成正确的文件名(已包含.csv)
filename = "calculated_%s_%s_%s.csv" % (portName, inceptionDate, frequency)

# 修正后的np.savetxt调用
np.savetxt(filename, finalArray, delimiter=",", fmt="%0.4f")

额外验证(可选)

如果还是担心维度问题,可以在保存前加一行代码确认finalArray的维度:

print(finalArray.ndim)  # 正常应该输出1,代表一维数组,符合savetxt的要求

另外,fmt参数可以根据你的需求调整,比如"%f"保留全部小数位,"%0.2f"保留两位小数,按需选择即可。

内容的提问来源于stack exchange,提问作者lee.edward01

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:17:46