Python 来自csv的三维数据帧

Python 来自csv的三维数据帧,python,pandas,Python,Pandas,我对熊猫相当陌生,需要从数据文件导入元组的3D数组。在文件中,数据的格式如下: [[(1.1, 1.2), (1.3, 1.4)], [(1.5, 1.6), (1.7, 1.8)], [(1.9, 1.10), (1.11, 1.12)], [(1.13, 1.14), (1.15, 1.16)]] [[(2.1, 2.2), (2.3, 2.4)], [(2.5, 2.6), (2.7, 2.8)], [(2.9, 2.10), (2.11, 2.12)], [(2.13, 2.14), (

我对熊猫相当陌生,需要从数据文件导入元组的3D数组。在文件中,数据的格式如下:

[[(1.1, 1.2), (1.3, 1.4)], [(1.5, 1.6), (1.7, 1.8)], [(1.9, 1.10), (1.11, 1.12)], [(1.13, 1.14), (1.15, 1.16)]]
[[(2.1, 2.2), (2.3, 2.4)], [(2.5, 2.6), (2.7, 2.8)], [(2.9, 2.10), (2.11, 2.12)], [(2.13, 2.14), (2.15, 2.16)]]
[[(3.1, 3.2), (3.3, 3.4)], [(3.5, 3.6), (3.7, 3.8)], [(3.9, 3.10), (3.11, 3.12)], [(3.13, 3.14), (3.15, 3.16)]]
我希望能够将其导入到一个数据帧中,以便(在本例中)维度为3x4x2(如果要计算元组的维度,则使用另一个x2,尽管这些元组不一定需要自己的维度,只要我可以作为元组访问它们)


实际上,我的数据集比这个大得多(尺寸大约为13000x2000x2),因此我希望将可能需要的任何手动编辑保持在最低限度,尽管我应该能够使用一些简单的脚本更改文件中数据的格式,如果使用不同的格式会有所帮助。

没有使用
熊猫的多维
数据帧
。 您可以考虑几个
数据帧
,并使用一个额外的列作为
id
使它们相互关联

或者,您也可以将3D阵列展平到具有多个列的数据帧
dataframe

  • 您的行将是观察结果,在本例中为3
  • 您的列将是扁平化输出4x2=8
您可以使用
numpy
重塑:

new_array = numpy.reshape(array, (3,8))

甚至“eval”也是一个危险的工具,它在这里提供了一个收集数据的线性工具:

with open('data.csv') as f: a=np.array([eval(x) for x in f.readlines()])
检查:

In [59]: a.shape
Out[59]: (3, 4, 2, 2)

你考虑过使用面板吗?正如@Diego Agher所说,没有3d数据帧,真正存在的是
面板
,这是类似的东西。我认为问题在于,您没有指定如何读取数据以及从中读取数据的数据文件的格式。如果你加上这一点,我们可能会更有帮助。文件的格式如上图所示(在其他纯文本文件中)。目前,我只是使用
read\u csv
来读取中的数据,尽管这显然不起作用,而且我不确定如何进一步指定文件的格式,而不仅仅是删除器。我将尝试查看
面板
s,看看它们是否可以工作,以及哪些函数可以从我的数据文件读取到面板中。我还应该补充一点,不使用pandas也是一个选项,但到目前为止,pandas是唯一一个能够导入任何东西的库,这是可行的!需要一点时间,但没关系。非常感谢。