我想对彼此相邻或不相邻的列进行子集化。在这种情况下,只有39列,因此写出完整的列名是可能的,但很乏味。我想做的只是基于索引的子集列。
df_sub = df.iloc[:,[10,11,29:37]]
但是我得到这个错误:
File "<ipython-input-46-d9362578c302>", line 1
df_sub = df.iloc[:,[10,11,29:37]]
^
SyntaxError: invalid syntax
没有一种方法可以将列索引彼此不相邻的列子集化?
在Google上搜索以进行类似的操作仅向我展示了基于列名,彼此相邻的索引或分别输入每个索引(例如here)进行子设置的方法。如果混合有100个色谱柱怎么办?
答案 0 :(得分:4)
您可以尝试以下操作:
g = lambda x,y: range(x,y)
[10,11,*g(29,37)]
#[10, 11, 29, 30, 31, 32, 33, 34, 35, 36]
时间比较:
%%timeit -n 1000000
np.r_[10,11,29:37]
每个循环12.4 µs±123 ns(平均±标准偏差,共运行7次,每个循环1000000次)
%%timeit -n 1000000
g = lambda x,y: range(x,y)
[10,11,*g(29,37)]
每个循环338 ns±3.94 ns(平均±标准偏差,共运行7次,100000个循环 每个)