有没有办法创建具有特定列顺序的 PyTable?
默认情况下,当使用字典或类来调用 createTable() 时,列按字母顺序排列。我需要建立一个特定的顺序,然后使用 numpy.genfromtxt() 从文本中读取和存储我的数据。不幸的是,我的文本文件没有像文件数据那样包含变量名。
此时,我的列按字母顺序排列,数据未对齐,因为它是根据文件布局排序的。并且希望在 pyTable 中保持相同的顺序(但不是必需的)。
谢谢
例如,假设文本文件名为 mydata.txt 并组织如下:
时间(第 1 行) bVar(第 1 行) dVar(第 1 行) aVar(第 1 行) cVar(第 1 行)
时间(row2) bVar(row2) dVar(row2) aVar(row2) cVar(row2) ...
时间(行 N) bVar(行 N) dVar(行 N) aVar(行 N) cVar(行 N)
因此,希望创建一个按这些列排序的表,然后使用 numpy.genfromtxt 命令填充该表。
# Column and Table definition with desired order
class parmDev(tables.IsDescription):
time = tables.Float64Col()
bVar = tables.Float64Col()
dVar = tables.Float64Col()
aVar = tables.Float64Col()
cVar = tables.Float64Col()
#...
mytab = tables.createTable( group, tabName, paramDev )
data = numpy.genfromtxt(mydata.txt)
mytab.append(data)
这使得代码简单并且非常快。但是,表格列始终按字母顺序排列,附加数据按所需顺序排列。有没有办法让表列的顺序遵循类定义顺序而不是按字母顺序排列。