繁体   English   中英

传递的值的形状为(1,20),索引暗含(37,20)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM