我想选择:
- 第二列
- 从第 3 列开始,包括第 3 列在内的每个奇数列也
从熊猫数据帧。熊猫文档提到了以下内容:
- 一个整数,例如 5。
- 整数的列表或数组,例如 [4, 3, 0]。
- 带有整数的切片对象,例如 1:7。
- 布尔数组。
- 具有一个参数(调用系列、数据帧或面板(的可调用函数,并返回索引的有效输出(上述值之一(
我的要求似乎是整数和范围对象或数组与范围对象的组合,例如.iloc[:, [2, 3::2]]
.实现上述目标的最佳和最简单的方法是什么?
我们可以使用 numpy.r_[...]
演示:
In [126]: df = pd.DataFrame(np.random.rand(5, 10), columns=list(range(1, 11)))
In [127]: df
Out[127]:
1 2 3 4 5 6 7 8 9 10
0 0.971111 0.209419 0.266902 0.410897 0.702329 0.199330 0.622634 0.391587 0.357186 0.738886
1 0.195173 0.409414 0.543279 0.090533 0.621940 0.096192 0.050050 0.513417 0.384031 0.191914
2 0.973278 0.825286 0.434370 0.012834 0.694801 0.645579 0.261067 0.240224 0.488762 0.665984
3 0.671826 0.184333 0.773337 0.870569 0.325016 0.871609 0.968624 0.103269 0.347466 0.262120
4 0.268309 0.242649 0.098463 0.979625 0.500496 0.965501 0.544177 0.959747 0.411557 0.979344
In [128]: df.iloc[:, np.r_[1, 2:df.shape[1]:2]]
Out[128]:
2 3 5 7 9
0 0.209419 0.266902 0.702329 0.622634 0.357186
1 0.409414 0.543279 0.621940 0.050050 0.384031
2 0.825286 0.434370 0.694801 0.261067 0.488762
3 0.184333 0.773337 0.325016 0.968624 0.347466
4 0.242649 0.098463 0.500496 0.544177 0.411557