我正在隔离对象类型列,如下所示:
non_num_cols = df.select_dtypes(['object']).columns
现在,我的non_num_cols包含['education', 'capital-gain', 'race', 'sex', 'classification']
我希望使用cat.codes()
转换这些内容,如下例所示:
df.education = df.education.astype('category').cat.codes
但是,我想使用“for”循环来完成此操作。我能够达到的最接近的是:
df[non_num_cols] = df[non_num_cols].apply(lambda x: x.astype('category'))
但是,我不能使用.cat.codes()。它抛出
TypeError :(“'系列'对象不可调用”,“在索引教育时发生”)
有什么建议吗?
答案 0 :(得分:1)
这应该有效:
for name in cat_columns:
df[name] = df[name].astype('category')
df[non_num_cols] = df[non_num_cols].apply(lambda x: x.cat.codes)