![](/img/trans.png)
[英]ValueError: Shape of passed values is (20, 1), indices imply (20, 6)
[英]Shape of passed values is (1, 20), indices imply (37, 20)
frame = []
for i in range(1,21):
frame.append(sampler(i))
# sampler is a function which return an array of 764*36
header = ['Act_High', 'Act_Low', 'Act_Avg', 'Precip_Amt', 'Festival_Impact',
'Val_Share', 'Variable_Disc___ValueOff__Rs',
'Non_Discounted_Gross_Revenue__Rs__', 'Fixed_Disc___ValueOff__Rs',
'Total_Volume__No__', 'unitMrp', 'Variable_Disc___PerOff__Rs',
'Fixed_Disc___FOC__Rs', 'Variable_Disc___FOC__Rs',
'Fixed_Disc___PerOff__Rs', 'Total_Volume__No__rmean',
'Non_Discounted_Gross_Revenue__Rs__rmean', 'Total_Volume__No__rmax',
'Non_Discounted_Gross_Revenue__Rs__rmax', 'Total_Volume__No__rmin',
'Non_Discounted_Gross_Revenue__Rs__rmin', 'Total_Volume__No__rstd',
'Non_Discounted_Gross_Revenue__Rs__rstd', 'Total_Volume__No__rymean',
'Non_Discounted_Gross_Revenue__Rs__rymean', 'Apr', 'Aug', 'Dec',
'Feb', 'Jan', 'Jul', 'Jun', 'Mar', 'May', 'Nov', 'Oct', 'Sep']
frame = np.nan_to_num(frame)
frame = pd.DataFrame(frame, columns = header)
ValueError: Shape of passed values is (1, 20), indices imply (37, 20)
好的,你好
我正在尝试为您重建环境,以帮助您解决此问题。 我希望我正确理解了sampler(i=1)
从第一个位置返回形状为(767,37 sampler(i=1)
的数组。
让我们用所有这些做一个虚拟函数:
def sampler(i):
a = np.empty((21, 764, 36))
return a[i]
因此,如果我定义了sampler(i=1).shape
它将返回一个形状数组( sampler(i=1).shape
)!
然后,如果我追加一个包含20个数组的称为frame的列表(就像在循环中所做的那样),那么它仍然是不适当的DataFrame的一维输入,因为pd.DataFrame(data=data, ...)
需要二维输入。 由于ValueError状态,您的帧既不是3维输入也不是2维输入。
让我们考虑一个例子:
a = sampler(i=1)
a.shape # (767, 37)
b = pd.DataFrame(data=a, columns=header)
它将创建一个DataFrame,在其中每个列都进行相应的标记。 但是,在您的情况下,您尝试使用37个标签标记frame的 20个元素,它也是一维列表。
您可以运行以下命令来解决我认为的问题:
frame = np.nan_to_num(frame)
frame = np.array(frame)
frame = np.reshape(-1, 37)
frame = pd.DataFrame(frame, columns=header)
我不确定是否会有所帮助,因为我不知道您真正想从附加框架列表中得到什么。 如果您更详尽地阐述您的问题,也许我可以帮忙。
E.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.