小编Ami*_*ari的帖子

使用 OrdinalEncoder 和字典进行逆变换时出现 ValueError

我可以使用分类编码和序数编码将目标列转换为所需的有序数值。但我无法执行,inverse_transform因为显示了下面写的错误。

import pandas as pd
import category_encoders as ce
from sklearn.preprocessing import OrdinalEncoder

lst = [ 'BRANCHING/ELONGATION', 'EARLY', 'EARLY', 'EARLY', 'EARLY', 'MID', 'MID',  'ADVANCED/TILLERING',
        'FLOWERING', 'FLOWERING', 'FLOWERING', 'SEEDLING/EMERGED']
  
filtered_df = pd.DataFrame(lst, columns =['growth_state'])

filtered_df['growth_state'].value_counts()

EARLY                   4
FLOWERING               3
MID                     2
ADVANCED/TILLERING      1
SEEDLING/EMERGED        1
BRANCHING/ELONGATION    1
Name: growth_state, dtype: int64

dictionary = [{'col': 'growth_state',
               'mapping':{'SEEDLING/EMERGED':0, 'EARLY':1, 'MID':2,
                          'ADVANCED/TILLERING':3, 'BRANCHING/ELONGATION':4, 'FLOWERING':5 }}]

# instiating encoder
encoder = ce.OrdinalEncoder(cols = 'growth_state', mapping= dictionary)

filtered_df['growth_state'] = encoder.fit_transform(filtered_df['growth_state'])
filtered_df

    growth_state
0   4 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pandas scikit-learn data-preprocessing

5
推荐指数
1
解决办法
678
查看次数