熊猫,将所有数据框设置为唯一的分类值

时间:2019-05-14 10:56:29

标签: pandas dataframe categorical-data

我对Pandas和python还是比较陌生,我试图找出如何将Pandas Dataframe的所有内容(所有字段都是字符串)转换为分类对象。

在将行和列中的所有值转换为分类数字之前,必须将它们视为一个大的唯一数据集。

到目前为止,我已经能够编写以下代码

for col_name in X.columns:
    if(X[col_name].dtype == 'object'):
        X[col_name]= X[col_name].astype('category')
        X[col_name] = X[col_name].cat.codes

适用于多列的数据框X。它接受字符串并将其转换为唯一数字。

我不确定上面的代码是我的for循环仅适用于每列,而且我不确定分配的代码是针对每一列还是整个数据帧都是唯一的(后者是所需的操作)。

考虑到数据框的所有值,您能否提供建议,说明我如何将代码转换为唯一数字?

在此先感谢您的帮助。 问候 亚历克斯

1 个答案:

答案 0 :(得分:1)

使用DataFrame.stackSeries.unstackMultiIndex Series设置为唯一值:

cols = df.select_dtypes('object').columns
df[cols] = df[cols].stack().astype('category').cat.codes.unstack()