首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果数据dtype索引是特定的dtype,则获取它。

如果数据dtype索引是特定的dtype,则获取它。
EN

Stack Overflow用户
提问于 2022-03-13 16:56:35
回答 3查看 191关注 0票数 -1

我一直试图构建一个预处理管道,但我正在努力为每一列生成一个索引列表,该列表是一个对象dtype。我已经能够使用以下代码将每个名称输入到数组中:

代码语言:javascript
复制
categorical_features = [col for col in input.columns if input[col].dtype == 'object']

是否有一种简单的方法可以将这些列的索引从原始的输入数据easy输入到一个列表中,比如我手工构建的这个列表?

代码语言:javascript
复制
c = [1,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,28,29,
     30,31,38,39,40,41,42,43,44,45,50,51,55,56]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-13 17:02:08

我想你需要select.dtypesenumerate

代码语言:javascript
复制
df = pd.DataFrame({'A' : ['A', 'B', 'C'], 'B' : [1,2,3], 'C' : [1, '2', '3']})

print(df)

   A  B  C
0  A  1  1
1  B  2  2
2  C  3  3

idx_cols = [idx for idx, col in enumerate(df.select_dtypes('object').columns) ]

代码语言:javascript
复制
[0, 1]
票数 1
EN

Stack Overflow用户

发布于 2022-03-13 17:00:57

使用df.select_dtypes + df.columns.get_indexer

代码语言:javascript
复制
categorical_features = df.columns.get_indexer(df.select_dtypes('object').columns)

  • df.select_dtypes只返回指定的dtype列的df副本(您可以指定多个,例如,df.select_dtypes(['object', 'int'])).
  • df.columns.get_indexer返回指定列的索引。
票数 3
EN

Stack Overflow用户

发布于 2022-03-13 17:00:24

enumerate可以在这方面提供帮助:

代码语言:javascript
复制
categorical_features_indexes = [i for i, col in enumerate(input.columns) if input[col].dtype == 'object']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71458916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档