我记得在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
谢谢。
答案 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
给出相同的结果。