选择数据框中的一系列列

Lit*_*tle 6 python indexing dataframe pandas

我有一个由第 0 到 10 列组成的数据集,我想提取仅在第 1 到 5 列中的信息,而不是第 6 列和第 7 到 9 列(这意味着不是最后一列)。到目前为止,我已经做了以下事情:

 A = B[:, [[1:5], [7:-1]]]
Run Code Online (Sandbox Code Playgroud)

但我有一个syntax error,我怎样才能检索该数据?

jpp*_*jpp 5

高级索引不采用切片列表的列表。相反,您可以使用numpy.r_. 此函数不采用负索引,但您可以使用以下方法解决此问题np.ndarray.shape

A = B[:, np.r_[1:6, 7:B.shape[1]-1]]
Run Code Online (Sandbox Code Playgroud)

请记住在第二部分加 1,因为a: b不包括b,同样地slice(a, b)不包括b。另请注意,索引从 0 开始。

这是一个演示:

import numpy as np

B = np.random.randint(0, 10, (3, 11))

print(B)

[[5 8 8 8 3 0 7 2 1 6 7]
 [4 3 8 7 3 7 5 6 0 5 7]
 [1 0 4 0 2 2 5 1 4 2 3]]

A = B[:,np.r_[1:6, 7:B.shape[1]-1]]

print(A)

[[8 8 8 3 0 2 1 6]
 [3 8 7 3 7 6 0 5]
 [0 4 0 2 2 1 4 2]]
Run Code Online (Sandbox Code Playgroud)