python: ValueError: 从 excel 中解压(预期 2)数据的值太多

标签 python pandas kernel gaussian

我想从 excel 中获取数据并在 python 中绘制二维核密度估计,但它显示“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()

最佳答案

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

当您调用一个返回多个值的函数时,您可以将它“解压”到单独的变量中。 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)

关于python: ValueError: 从 excel 中解压(预期 2)数据的值太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67458085/

相关文章:

Python程序崩溃

python - 在 Linux 中列出所有 USB 驱动器

python - 简单的 Sublime Text 3 python27 构建系统 - 将项目文件夹添加到路径

python - 在 Pandas DF 的不同列中计算运行总计

python - 标记一列中的 ID 第一次出现在另一列中

python - 列表比较算法 : How can it be made better?

python - 如何解决引发 ValueError ("columns must have matching element counts") ValueError : columns must have matching element counts?

c - 使用 sk_buff 从内核中的 char* buf 发送数据包到网络设备

windows - 没有设备的设备驱动程序?

linux - 每个进程的页表是否包含映射到内核地址空间的条目?