2016-02-15 24 views
8

Tôi đang cố đọc một số cột không liên tục nhất định từ tệp của mình bằng hàm python pandas read_table. Cuối cùng, tôi đang cố gắng:pandas read_table lỗi usecols với ":"

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

Ý tưởng là tôi đang cố gắng sử dụng ":" để chọn phạm vi của số cột cho usecols, thay vì sử dụng số cột tách bằng dấu phẩy "". Tôi nhận được một lỗi cú pháp. Nếu tôi sử dụng dấu phẩy "," để tách các số cột, thì nó hoạt động tốt.

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

Tuy nhiên, điều đó có thể cồng kềnh vì đôi khi tôi phải chọn 40 cột. Làm thế nào tôi có thể đi xung quanh điều này?

Tôi thậm chí đã cố gắng

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

nhưng nó cũng đã cho tôi lỗi.

Tôi nghĩ rằng đó phải là điều đơn giản để giải quyết nhưng tôi không thể tìm thấy giải pháp trực tuyến.

Trả lời

10

Nó phải là ...

Python 3:

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

Python 2:

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

Hy vọng nó sẽ giúp!

+0

Cảm ơn, sửa chữa/chỉnh sửa cho python 2 hoạt động. – BioProgram

+0

Tò mò ở đâu trong tài liệu? Tôi không thể tìm thấy .. – dartdog

+0

@dartdog Xin lỗi, không chắc chắn ý của bạn là gì ... – cdonts

Các vấn đề liên quan