微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python:ValueError:太多值无法从excel中解压缩预期2数据

如何解决python:ValueError:太多值无法从excel中解压缩预期2数据

我想从 excel 中获取数据并在 python 中绘制 2D 内核密度估计值,但它显示“ValueError:要解压的值太多(预期为 2)”。如何解决?按照编码:

# libraries
import matplotlib.pyplot as plt
from scipy.stats import kde
import pandas as pd
 
# create data
x = pd.read_excel(r'C:\Users\Ezra\Desktop\montex.xlsx')
y = pd.read_excel(r'C:\Users\Ezra\Desktop\montey.xlsx')
 
# Evaluate a gaussian kde on a regular grid of nbins x nbins over data extents
nbins=500
k = kde.gaussian_kde([x,y])
xi,yi = pd.mgrid[x.min():x.max():nbins*100j,y.min():y.max():nbins*100j]
zi = k(pd.vstack([xi.flatten(),yi.flatten()]))
 
# Make the plot
plt.pcolormesh(xi,yi,zi.reshape(xi.shape),shading='auto')
plt.show()
 
# Change color palette
plt.pcolormesh(xi,shading='auto',cmap=plt.cm.Greens_r)
plt.show()

解决方法

当您从代码中收到错误时,提供实际的回溯会有所帮助,尤其是指示示例代码的哪一行导致错误的部分。

当您调用一个返回多个值的函数时,您可以将其“解包”为单个变量。 ValueError: too many values to unpack (expected 2) 表示您调用了一个只返回一个值的函数,但您尝试将返回值解包为两个变量。

例如,考虑这个小python脚本:

def returns_1_val(): 
    return 'one'

def returns_2_vals(): 
    return 'one','two'

print(returns_2_vals())

# Unpack the return value.
x,y = returns_2_vals()
print('x',x)
print('y',y)

print(returns_1_val())

# This next call fails.  We're "expecting" Python to unpack 2 values into 
# x and y,but it fails because the function only returned one value.   
x,y = returns_1_val()

运行时:

('one','two')
x one
y two
one
Traceback (most recent call last):
  File "unpack_err.py",line 11,in <module>
    x,y = returns_1_val()
ValueError: too many values to unpack (expected 2)

更一般的错误信息使它更清楚一点。例如,如果您尝试调用 x,y,z = return_2_vals(),您会得到

ValueError: 没有足够的值来解包(预期 3,得到 2)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。