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,我怎样才能检索该数据?
高级索引不采用切片列表的列表。相反,您可以使用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)