请帮助我变得更Python化:
我正在用Pandas标签编码所有分类特征。我知道这也可以使用Sklearn完成,但我想仅使用Pandas或Python来完成。
我首先选择了恰好是cat的所有类型为'obj'的列(我正在处理一个小的数据框,所以我肯定知道这一点)。然后,我使用了for循环来转换每一列。
我知道我绝对可以通过避免for循环来做到这一点。 pythonic越好:
cat_cols = df.select_dtypes(include='object').columns
for col in cat_cols:
df[col] = df[col].astype('category').cat.codes
答案 0 :(得分:2)
基于link的for循环并不总是“坏”的,如果您确实需要使用它,则可以使用apply
cat_cols = df.select_dtypes(include='object').columns
df[cat_cols ] = df[cat_cols ].apply(lambda x : x.astype('category').cat.codes,axis=1)