检查DataFrame中的哪些列是分类的

发布于 2021-01-29 18:15:23

我是Pandas的新手,我想以一种简单通用的方法来查找categorical我的哪些列DataFrame,而无需手动指定每种列类型,这与本SO问题不同。使用以下项df创建:

import pandas as pd
df = pd.read_csv("test.csv", header=None)

例如

           0         1         2         3        4
0   1.539240  0.423437 -0.687014   Chicago   Safari
1   0.815336  0.913623  1.800160    Boston   Safari
2   0.821214 -0.824839  0.483724  New York   Safari

更新(2018/02/04)问题假设数值列不是分类的,@Zero 接受的答案解决了这个问题。

注意-正如@Sagarkar的评论指出的那样,这并不总是正确的。
困难在于数据类型和分类/有序/标称类型是正交的概念,因此在它们之间进行映射并不容易。@Jeff的答案在下面指定了实现手动映射的精确方式。

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以df._get_numeric_data()用来获取数字列,然后找出分类列

    In [66]: cols = df.columns
    
    In [67]: num_cols = df._get_numeric_data().columns
    
    In [68]: num_cols
    Out[68]: Index([u'0', u'1', u'2'], dtype='object')
    
    In [69]: list(set(cols) - set(num_cols))
    Out[69]: ['3', '4']
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看