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 sklearn's OneHotEncoder, and provides a fit and transform method.
const dfd = require("danfojs-node")let data = { fruits: ['pear', 'mango', "pawpaw", "mango", "bean"],Count: [20, 30, 89, 12, 30],Country: ["NG", "NG", "GH", "RU", "RU"]}let df = new dfd.DataFrame(data)let encode = new dfd.OneHotEncoder()encode.fit(df['fruits'])console.log(encode);let sf_enc = encode.transform(df['fruits'].values)sf_enc.print()let new_sf = encode.transform(["mango","bean"])new_sf.print()
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗║ │ pear │ mango │ pawpaw │ bean ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 0 │ 1 │ 0 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 1 │ 0 │ 1 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 2 │ 0 │ 0 │ 1 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 3 │ 0 │ 1 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 4 │ 0 │ 0 │ 0 │ 1 ║╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝Shape: (2,4)╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗║ │ pear │ mango │ pawpaw │ bean ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 0 │ 0 │ 1 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 1 │ 0 │ 0 │ 0 │ 1 ║╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
Labels not found in the original data used for fitting are represented with 0s all through
const dfd = require("danfojs-node")let data = { fruits: ['pear', 'mango', "pawpaw", "mango", "bean"] ,Count: [20, 30, 89, 12, 30],Country: ["NG", "NG", "GH", "RU", "RU"]}let df = new dfd.DataFrame(data)let encode = new dfd.OneHotEncoder()encode.fit(df['fruits'])console.log(encode);let sf_enc = encode.transform(df['fruits'].values)sf_enc.print()let new_sf = encode.transform(["mango","woman", "cup"])new_sf.print()
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗║ │ pear │ mango │ pawpaw │ bean ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 0 │ 1 │ 0 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 1 │ 0 │ 1 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 2 │ 0 │ 0 │ 1 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 3 │ 0 │ 1 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 4 │ 0 │ 0 │ 0 │ 1 ║╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝Shape: (3,4)╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗║ │ pear │ mango │ pawpaw │ bean ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 0 │ 0 │ 1 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 1 │ 0 │ 0 │ 0 │ 0 ║╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢║ 2 │ 0 │ 0 │ 0 │ 0 ║╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
See also LabelEncoder and danfo.get_dummies