2016-02-15 11 views
8

python pandasのread_table関数を使用して、私のファイルから一定範囲の非連続列を読み出そうとしています。そのために、私がしようとしています:「」usecolsの列の数の範囲を選択するのではなく、カンマで区切られ、列番号を使用して:「」pandas read_table usecols with ":"

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

をアイデアは、私が使用しようとしていますということです。私は構文エラーが発生しています。私がカンマ「、」を使用して列番号を区切ると、正常に動作します。

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

ただし、時には40個の列を選択する必要があるため、煩わしいことがあります。どうすればこの問題を回避できますか?

私も

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

を試してみましたが、それはまた私にエラーを与えました。

私は解決すべき単純なものでなければならないと思いますが、私は解決策をオンラインで見つけることができませんでした。

答えて

10

これは、Python 3 ...

次のようになります。

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

のPython 2:

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

はそれが役に立てば幸い!

+0

ありがとうございました。修正/編集済みのPython 2が動作します。 – BioProgram

+0

好奇心が強いのはどこですか?私は見つけられませんでした.. – dartdog

+0

@dartdogどういう意味ですか? – cdonts