2016-02-15 14 views
8

Sto provando a leggere un certo intervallo di colonne non consecutive dal mio file usando la funzione read_table di python pandas. A tal fine, sto provando:errore readectable readectable con ":"

df=pd.read_table('genes.fpkm_trackingTest', usecols=[0:4, 8,9, 12:19]) 

L'idea è che sto cercando di usare ":" per selezionare l'intervallo di numero di colonne per usecols, invece di usare numeri di colonna separati da virgola "". Sto ottenendo un errore di sintassi. Se uso le virgole "," per separare i numeri di colonna, allora funziona bene.

df=pd.read_table('genes.fpkm_trackingTest', usecols=[0,1,2,4, 8,9, 12,13,14,15,16,17,18,19]) 

Tuttavia, che può essere ingombrante come a volte devo selezionare 40 colonne. Come posso venire in giro questo?

Ho anche provato

usecols=[range(0:4), 8, 9, range(12:19)] 

ma mi ha dato anche errori.

Penso che dovrebbe essere una cosa semplice da risolvere ma non riuscivo a trovare una soluzione online.

risposta

10

Dovrebbe essere ...

Python 3:

usecols = [*range(0, 5), 8, 9, *range(12, 20)] 

Python 2:

usecols = range(0, 5) + [8, 9] + range(12, 20) 

Speranza che aiuta!

+0

Grazie, il corretto/modificato per Python 2 funziona. – BioProgram

+0

Curioso dove in quale documento? Non ho trovato .. – dartdog

+0

@dartdog Mi spiace, non sono sicuro di cosa intendi ... – cdonts