如何使用熊猫对数据框进行子集化?

时间:2020-07-21 14:24:44

标签: python pandas

我想对彼此相邻或不相邻的列进行子集化。在这种情况下,只有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个色谱柱怎么办?

1 个答案:

答案 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个循环 每个)

相关问题