以更多Python方式更改列数据类型

时间:2019-01-22 00:55:00

标签: python-3.x pandas label

请帮助我变得更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

1 个答案:

答案 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)