Python:如何正确从DataFrame提取指定索引列并生成新DataFrame?
正确提取指定列的方法
你之前用的DS.iloc[:, 0:1:3].values之所以无效,是因为切片0:1:3的逻辑是从索引0开始,到索引1(不包含)结束,步长为3,最终只会选中第0列,无法同时获取索引3的列。
要实现提取索引0和3的列,有两种常用方法:
- 直接通过列索引列表指定(推荐,适合不知道列名的场景)
X = DS.iloc[:, [0, 3]].values
iloc的第二个参数传入列表[0, 3],会精准选中这两个索引对应的列,再通过.values转为numpy数组。
- 已知列名时,用列名列表指定(更直观)
如果知道目标列的名称是A和D,也可以用loc:
X = DS.loc[:, ['A', 'D']].values
针对你的示例DataFrame,执行上述代码后,X会得到结果array([[1, 4]]),符合需求。
内容的提问来源于stack exchange,提问作者Another.Chemist
相关产品推荐
相关产品推荐

