Passed
Push — dev ( 3b058b...d73523 )
by Konstantinos
01:35
created

NominalEncoder.encode()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nop 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
import pandas as pd
2
from data.encoding import EncoderFactory, AbstractEncoder
3
4
5
class NominalEncoder(AbstractEncoder):
6
    def encode(self, *args, **kwargs):
7
        dataset, feature = args[0], args[1]
8
        return pd.get_dummies(dataset.datapoints.observations.df, f'{feature.label}-{feature.state.current}')
9
10
11
@EncoderFactory.register_as_subclass('pandas')
12
class DFEncoderFactory(EncoderFactory):
13
    def nominal_encoder(self, feature, **kwargs):
14
        return NominalEncoder()
15