pandas read_table usecols错误带":"

Bio*_*ram 8 python dataframe pandas

我试图使用python pandas read_table函数从我的文件中读取一定范围的非连续列.为此,我正在努力:

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

我的想法是,我尝试使用":"来选择usecols的列数范围,而不是使用以逗号","分隔的列号.我收到语法错误.如果我使用逗号","分隔列号,那么它工作正常.

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

然而,这可能很麻烦,因为有时我必须选择40列.我怎么能绕过这个?

我甚至试过了

usecols=[range(0:4), 8, 9, range(12:19)]
Run Code Online (Sandbox Code Playgroud)

但它也给了我错误.

我认为这应该是简单的事情要解决,但我无法在网上找到解决方案.

cdo*_*nts 10

它应该是...

Python 3:

usecols = [*range(0, 5), 8, 9, *range(12, 20)]
Run Code Online (Sandbox Code Playgroud)

Python 2:

usecols = range(0, 5) + [8, 9] + range(12, 20)
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

  • @dartdog 这有点像“解包”`range` 函数返回的迭代器。例如,`[range(0, 3), 3] == [[0, 1, 2], 3]` 但是`[*range(0, 3), 3] == [0, 1, 2, 3]`。 (3认同)