python - Pandas DataFrame 中嵌套列表的列太多错误
问题描述
我有一个嵌套列表的数据结构。pandas DataFrame 中的每个单元格都应该有一个嵌套列表。
我尝试了以下方法;
首先,我有一个标题列表:
headings = ["heading1", "heading2", "heading3", "heading4", "heading5", "heading6"]
然后我有我的数据结构:
data_list = [[foo, bar], [foo1, bar1], [foo2, bar2], [foo3, bar3], [foo4, bar4], [foo5, bar5], [bar, foo], [bar1, foo1], [bar2, foo2], [bar3, foo3], [bar4, foo4], [bar5, foo5]]
我想要实现的是创建一个 pandas 数据框,并且对于数据结构中的每 6 个项目,我们在 pandas 数据框中开始一个新行。在上面的示例中,这意味着将有两行 6 列。
到目前为止我尝试过的是以下内容;
根据数据结构的长度生成行索引:
idx =[i for i in range((len(data_list) / 6))]
然后我尝试使用列与索引生成数据框:
df = pd.DataFrame(data_list, columns=headings, index=idx)
在这种情况下,我收到以下错误:
AssertionError: 6 columns passed, passed data had 12 columns
我的问题是,如何在嵌套列表中每隔 6 项开始一个新行?
解决方案
您的 data_list 是列表格式,将其转换为 numpy 数组
import numpy as np
data_list = np.array(data_list)
现在使用 reshape 方法将数据更改为 2 行 6 列
data_list = data_list.reshape([2,6,2])
输出:
array([[['foo', 'bar'],
['foo1', 'bar1'],
['foo2', 'bar2'],
['foo3', 'bar3'],
['foo4', 'bar4'],
['foo5', 'bar5']],
[['bar', 'foo'],
['bar1', 'foo1'],
['bar2', 'foo2'],
['bar3', 'foo3'],
['bar4', 'foo4'],
['bar5', 'foo5']]], dtype='<U4')
推荐阅读
- vba - VBA - 运行时错误'1004' - 对象'_Global'的方法'范围'失败
- azure - 我们可以在 webapp 的 Node.js 中的 microsoft azure bot 的输入栏中创建持久菜单按钮吗?
- swift - 核心数据数据库位置调试 v 发布构建
- java - Openam 中的 Java.lang.NullPointerException(配置期间)
- azure - 如何在 .net core 2 应用程序中从 Controller 设置 OpenIdConnect 选项提示 =“login”?
- javascript - 处理复杂的 JavaScript 对象
- gdb - 使用 ptrace 时阻止信号传播到下级
- html - iphone上的全屏背景图像模糊
- c# - 查找未使用/不必要的 assemblyBinding 重定向
- php - 不超过 5 位数字或包含字符串的正则表达式