Изменен ответ @ в Dorian's для работы с IE: FIDDLE: https://jsfiddle.net/z6zom9d0/1/ СМОТРИТЕ ТАКЖЕ: https://caniuse.com/#feat=customevent document.addEventListener("my_event", function(e) {
console.log(e.detail);
});
var detail = 'Event fired';
try {
// For modern browsers except IE:
var event = new CustomEvent('my_event', {detail:detail});
} catch(err) {
// If IE 11 (or 10 or 9...?) do it this way:
// Create the event.
var event = document.createEvent('Event');
// Define that the event name is 'build'.
event.initEvent('my_event', true, true);
event.detail = detail;
}
// Dispatch/Trigger/Fire the event
document.dispatchEvent(event);
Мне кажется, нужно преобразовать массив 2d
в list
s:
table = pd.DataFrame({"Teams":list('aaasdffds')})
from sklearn.preprocessing import MultiLabelBinarizer
one_hot_encoder = MultiLabelBinarizer()
table["Teams"] = one_hot_encoder.fit_transform(table["Teams"]).tolist()
print (table)
Teams
0 [1, 0, 0, 0]
1 [1, 0, 0, 0]
2 [1, 0, 0, 0]
3 [0, 0, 0, 1]
4 [0, 1, 0, 0]
5 [0, 0, 1, 0]
6 [0, 0, 1, 0]
7 [0, 1, 0, 0]
8 [0, 0, 0, 1]
Но хранить массивы или списки в один столбец не рекомендуется, потому что невозможно использовать векторизованные методы / функции, лучше создать DataFrame
:
table = pd.DataFrame(one_hot_encoder.fit_transform(table["Teams"]),
columns=one_hot_encoder.classes_)
print (table)
a d f s
0 1 0 0 0
1 1 0 0 0
2 1 0 0 0
3 0 0 0 1
4 0 1 0 0
5 0 0 1 0
6 0 0 1 0
7 0 1 0 0
8 0 0 0 1
Понимая, что вам нужен список в вашем DataFrame. Вы можете хранить массивы в виде списка, панды не будут изменять его.
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
encoded_array = mlb.fit_transform(table['Teams'])
table['Teams'] = [ [encoded_array [i,:]] for i in range(table.shape[0]) ]