Как создать по умолчанию два столбца для каждой функции (One Hot Encoding)? - PullRequest
0 голосов
/ 29 мая 2020

Моя разработка функций выполняется для разных документов. Для некоторых документов некоторые функции не существуют, и, следовательно, подсписок состоит только из таких же значений, как третий подсписок [0,0,0,0,0]. Одно горячее кодирование этого подсписка приводит только к одному столбцу, тогда как списки функций других документов преобразуются в два столбца. Есть ли возможность указать ему также создать два столбца, если он состоит только из одного и того же значения, и вставить столбец в нужное место? Основная проблема заключается в том, что мой фреймворк данных для разных документов состоит в конце разного количества столбцов, что делает их несопоставимыми.

import pandas as pd 
feature = [[0,0,1,0,0], [1,1,1,0,1], [0,0,0,0,0], [1,0,1,1,1], [1,1,0,1,1], [1,0,1,1,1], [0,1,0,0,0]]

df = pd.DataFrame(feature[0])
df_features_final  = pd.get_dummies(df[0])

for feature in feature[1:]:
    df = pd.DataFrame(feature)
    df_enc = pd.get_dummies(df[0])
    print(df_enc)
    df_features_final = pd.concat([df_features_final, df_enc], axis = 1, join ='inner')


print(df_features_final)

Результатом является следующий фрейм данных. Как видно из изменяющихся заголовков столбцов, после столбца 5 не следует 1:

   0  1  0  1  0  0  1  0  1  0  1  0  1
0  1  0  0  1  1  0  1  0  1  0  1  1  0
1  1  0  0  1  1  1  0  0  1  1  0  0  1
2  0  1  0  1  1  0  1  1  0  0  1  1  0
3  1  0  1  0  1  0  1  0  1  0  1  1  0
4  1  0  0  1  1  0  1  0  1  0  1  1  0

1 Ответ

1 голос
/ 29 мая 2020

По крайней мере, я не замечаю нужной вам функциональности в pandas. Но в TensorFlow у нас есть

tf.one_hot(
    indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None
)

Установить глубину на 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...