如何将此数据列表插入熊猫数据框
orgdata = ['somestring', data[2], data[3], data[4], data[8], data[9], data[10], data[14], data[15], data[16], data[20], data[21], data[22], data[26], data[27], data[28], data[32], data[33], data[34], data[38], data[39], data[40], data[44], data[45], data[46] ]
其中'data'是另一个数据列表,我从中分析特定的数据。在
我有一个列名称的列表,它也是从“data”列表派生的
^{pr2}$现在我需要在每个列下有三个子列,所以我这样做
cols = pd.MultiIndex.from_product([colnames, ['IA', 'EX', 'Total']])
但当我试图将这个“数据”列表插入这样的数据帧时
df = pd.DataFrame(orgdata, columns=cols)
我得到以下错误
ValueError: Wrong number of items passed 1, placement implies 27
我也得到了这个错误
ValueError: Shape of passed values is (1, 25), indices imply (27, 25)
我做错什么了?网上提供的文档并没有给这个主题提供太多的见解。在
有没有其他办法解决这个问题?如有任何帮助,我们将不胜感激。在
编辑:
首先,我列出了一个从我的请求中得到的“数据”列表。这是我从响应中收到的数据的一个实例。在
data = ['15EC41', 'LIC', '40', '60', 'P']
这就是我正在处理的数据。在
您需要将
orgdata
括在括号中,并确保其长度等于您拥有的列数,如下所示:当您创建
MultiIndex
时,您将orgdata
作为25个值的列表传递(即Shape of passed values is (1, 25)
)。然后将列表colnames
(我假设)定义为一个长度为9的字符串列表。然后使用另一个包含3个值的列表使用from_product()
创建您的MultiIndex
,因此给您indices imply (27, 25)
。这里的25
源于这样一个事实,即您将orgdata
作为单个列表传递给您的数据帧构造函数,因此它将尝试将每个单独的值解析为它自己的行。您需要用括号将其括起来,以确保每个值都将分配给一个列(因为构造函数中的每个列表都被解释为一行)。最后,您需要确保有25
列来匹配传递的orgdata
,或者在orgdata
内传递27
值。在使用示例数据,下面是一个最小的示例:
^{pr2}$产量:
一个更复杂的设置索引的示例:
产量:
使用
orgdata
调用DataFrame
,这是25项=>;df
应该是25列。columns
参数只指定数据的标签。因此,不匹配,columns
实际上是27个项目。在你能说明你想怎样“插入”数据(而不仅仅是标签)吗?在
我使用的最小示例:
相关问题 更多 >
编程相关推荐