python:ValueError:太多的值无法从excell解包(预期为2)数据

2024-09-29 23:28:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从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, yi, zi.reshape(xi.shape), shading='auto', cmap=plt.cm.Greens_r)
plt.show()

Tags: importreaddataaspltexceluserspd
1条回答
网友
1楼 · 发布于 2024-09-29 23:28:22

当您从代码中获得错误时,将有助于提出实际的回溯,特别是指示示例代码的哪一行导致错误的部分

当您调用一个返回多个值的函数时,可以将其“解包”为单个变量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: not enough values to unpack (expected 3, got 2)

相关问题 更多 >

    热门问题