danfo.OneHotEncoder
Encode categorical features as a one-hot numeric array.
class danfo.OneHotEncoder [source]
danfo.js provides the OneHotEncoder class for encoding values in Series and Arrays to one-hot numeric arrays. This is mostly used as a preprocessing step before most machine learning tasks.
The API is similar to scikit-learn's OneHotEncoder, and provides a fit and transform method.

Examples

Convert Series to Dummy codes

Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { fruits: ['pear', 'mango', "pawpaw", "mango", "bean"],
4
Count: [20, 30, 89, 12, 30],
5
Country: ["NG", "NG", "GH", "RU", "RU"]}
6
7
8
let df = new dfd.DataFrame(data)
9
let encode = new dfd.OneHotEncoder()
10
11
encode.fit(df['fruits'])
12
console.log(encode);
13
14
let sf_enc = encode.transform(df['fruits'].values)
15
sf_enc.print()
16
17
let new_sf = encode.transform(["mango","bean"])
18
new_sf.print()
Copied!
1
Copied!
Output
1
2
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
3
║ │ pear │ mango │ pawpaw │ bean ║
4
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
5
║ 0 │ 1 │ 0 │ 0 │ 0 ║
6
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
7
║ 1 │ 0 │ 1 │ 0 │ 0 ║
8
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
9
║ 2 │ 0 │ 0 │ 1 │ 0 ║
10
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
11
║ 3 │ 0 │ 1 │ 0 │ 0 ║
12
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
13
║ 4 │ 0 │ 0 │ 0 │ 1 ║
14
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
15
16
17
Shape: (2,4)
18
19
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
20
║ │ pear │ mango │ pawpaw │ bean ║
21
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
22
║ 0 │ 0 │ 1 │ 0 │ 0 ║
23
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
24
║ 1 │ 0 │ 0 │ 0 │ 1 ║
25
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
26
Copied!
Labels not found in the original data used for fitting are represented with 0s all through
Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { fruits: ['pear', 'mango', "pawpaw", "mango", "bean"] ,
4
Count: [20, 30, 89, 12, 30],
5
Country: ["NG", "NG", "GH", "RU", "RU"]}
6
7
8
let df = new dfd.DataFrame(data)
9
let encode = new dfd.OneHotEncoder()
10
11
encode.fit(df['fruits'])
12
console.log(encode);
13
14
let sf_enc = encode.transform(df['fruits'].values)
15
sf_enc.print()
16
17
let new_sf = encode.transform(["mango","woman", "cup"])
18
new_sf.print()
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ pear │ mango │ pawpaw │ bean ║
3
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ 1 │ 0 │ 0 │ 0 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ 0 │ 1 │ 0 │ 0 ║
7
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
8
║ 2 │ 0 │ 0 │ 1 │ 0 ║
9
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
10
║ 3 │ 0 │ 1 │ 0 │ 0 ║
11
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
12
║ 4 │ 0 │ 0 │ 0 │ 1 ║
13
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
14
15
16
Shape: (3,4)
17
18
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
19
║ │ pear │ mango │ pawpaw │ bean ║
20
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
21
║ 0 │ 0 │ 1 │ 0 │ 0 ║
22
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
23
║ 1 │ 0 │ 0 │ 0 │ 0 ║
24
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
25
║ 2 │ 0 │ 0 │ 0 │ 0 ║
26
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
27
Copied!
Last modified 24d ago