Один из методов заключается в том, чтобы читать по одному столбцу за раз и сохранять в виде списка и concat
результат:
In[121]:
t="""D,B,A,C
4,2,1,3"""
cols = list('ABCD')
pd.concat([pd.read_csv(io.StringIO(t), usecols=[x]) for x in cols], axis=1)
Out[121]:
A B C D
0 1 2 3 4
Однако я думаю, что проще просто отсортировать его по подпунктам -выбирая столбцы в том порядке, который вы хотите после прочтения в обычном режиме:
df = df[['A','B','C','D']]
Вы пытаетесь создать экземпляр T
через T.Create
. Это не работает, потому что компилятор не знает, что Ваш универсальный тип имеет конструктора без параметров (помните: это не требование). Для исправления этого необходимо создать ограничение конструктора, которое похоже на это:
<T: constructor>
или, в Вашем конкретном случае:
<T: TBaseDatafile, constructor>