2010-10-15 3 views
1

Есть ли способ создать PyTable с определенным порядком столбцов?PyTable Column Order

По умолчанию столбцы упорядочиваются в алфавитном порядке при использовании словаря или класса для определения схемы для вызова createTable(). Мне нужно установить определенный порядок, а затем использовать numpy.genfromtxt() для чтения и хранения моих данных из текста. К сожалению, у моего текстового файла нет имен переменных, включенных так же, как и данные файла.

На данный момент моя колонка упорядочена по алфавиту, а данные смещены в том, что она упорядочена в соответствии с макетом файла. И желательно поддерживать тот же порядок в pyTable (но не существенный).

Благодаря

+0

Обеспечивая некоторый пример кода, скорее всего, поможет вам получить больше ответов (то есть, как повторить ситуацию вы столкнулись с)! – jsalonen

+0

Возможный дубликат [Есть ли способ хранения столбцов PyTable в определенном порядке?] (Http://stackoverflow.com/questions/4303986/is-there-a-way-to-store-pytable-columns-in- а-специфический заказ) –

ответ

0

Например, предполагающие текстовый файл называется mydata.txt и организована следующим образом:

время (row1) BVAR (row1) DVAR (row1) аварского (row1) квар (row1)

время (row2) BVAR (row2) DVAR (row2) аварского (row2) квар (row2) ...

время (rowN) BVAR (rowN) DVAR (rowN) аварского (rowN) квар (rowN)

Итак, желание создать таблицу, упорядоченную с этими столбцами , а затем использовать команду 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) 

Это делает простой код и очень быстро. Но столбцы таблицы всегда упорядочены по алфавиту, а прилагаемые данные упорядочены в соответствии с желаемым порядком. Есть там, чтобы порядок столбцов таблицы следовал за порядком определения класса, а не по алфавиту.

Смежные вопросы