在python中分解

时间:2019-06-08 02:40:11

标签: python r machine-learning

我记得在R中我使用了.factor(我相信它们是水平的因素),但是在python中我不知道该怎么做。

它正在使用get_dummies,但是当训练数据集具有测试不具有的值时出现了一个问题,从而生成了比ML算法不接受的列更多的列。

我需要转换以下列:

protected $foo;

public function handle($request, Closure $next)
{
    $this->foo = 'bar';

    return $next($request);
}

public function terminate($request, $response)
{
    // because we cannot use `dd` here, so the example is using `logger`
    logger($this->foo);
}

我需要离开火车。MSZoning如下:

train.head(5)

    Id  MSSubClass  MSZoning
     1      60         RL
     2      53         RR
     3      49         RL
     4      60         RL
     5      95         RR
     6      16         RR
     6      16         R1

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用pd.Categorical。以下是一个最小的可重现示例

import pandas as pd 
data = [[1, 60, 'RL'], [2, 53, 'RR'], [3, 49, 'RL'], [4, 60, 'RL'], [5, 95, 'RR']] 
df = pd.DataFrame(data, columns = ['Id', 'MSSubClass', 'MSZoning']) 

df['MSZoning_factor'] = pd.Categorical(df.MSZoning).codes + 1
df
#   Id  MSSubClass MSZoning  MSZoning_factor
#0   1          60       RL                1
#1   2          53       RR                2
#2   3          49       RL                1
#3   4          60       RL                1
#4   5          95       RR                2

或与pd.factorize

df['MSZoning_factor'] = pd.factorize(df.MSZoning)[0] + 1

给出相同的结果。