为了账号安全,请及时绑定邮箱和手机立即绑定

是否有用于查找数字列和分类列的 python 函数?

是否有用于查找数字列和分类列的 python 函数?

一只斗牛犬 2023-07-11 15:12:41
在Python中从pandas数据框中分割/返回分类列和数字列的有效方法是什么?到目前为止,我正在使用以下函数来查找分类列和数字列。def returnCatNumList(df):        object_cols = list(df.select_dtypes(exclude=['int', 'float', 'int64', 'float64',                                                  'int32', 'float32', 'int16', 'float16']).columns)    numeric_cols = list(df.select_dtypes(include=['int', 'float', 'int64', 'float64',                                                   'int32', 'float32', 'int16', 'float16']).columns)    return object_cols, numeric_cols我正在寻找一种有效且更好的方法来做到这一点。任何建议或参考将不胜感激。
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

您可以通过np.number数字列表来简化您的答案dtype:


def returnCatNumList(df):

    

    object_cols = list(df.select_dtypes(exclude=np.number).columns)

    numeric_cols = list(df.select_dtypes(include=np.number).columns)


    return object_cols, numeric_cols

另一个想法是numeric_cols使用Index.difference


def returnCatNumList(df):

    

    object_cols = list(df.select_dtypes(exclude=np.number).columns)

    numeric_cols = list(df.columns.difference(object_cols, sort=False))


    return object_cols, numeric_cols


查看完整回答
反对 回复 2023-07-11
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

您可以通过简单地使用对象数据类型来做到这一点


def returnCatNumList(df):

    

    object_cols = df.select_dtypes(include="object").columns.tolist()

    numeric_cols = df.select_dtypes(exclude="object").columns.tolist()


    return object_cols, numeric_cols


查看完整回答
反对 回复 2023-07-11
?
慕容3067478

TA贡献1773条经验 获得超3个赞

我们还可以使用pandas types API,它允许我们交互和操作数据类型

def returnCatNumList(df):

    object_cols = []

    numeric_cols  = []


    for label, content in df.items():

        if pd.api.types.is_string_dtype(content):

            numeric_cols.append(label)

        else:

            object_cols.append(label)

    return object_cols, numeric_cols

例子:


iris = sns.load_dataset('iris')


object_cols, numeric_cols = returnCatNumList(iris)


print(object_cols)

print(numeric_cols)

输出:


>>> ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']


>>> ['species']


查看完整回答
反对 回复 2023-07-11
  • 3 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信