Я одна горячо закодировал некоторую переменную, и после некоторого вычисления я хотел бы получить исходную.
Что я делаю, так это:
Я фильтрую имена столбцов с одним горячим кодированием (все они начинаются с имени исходной переменной, скажем, 'mycol'
)
filter_col = [col for col in df if col.startswith('mycol')]
Тогда я могу просто умножить имена столбцов на отфильтрованные переменные.
X_test[filter_col]*filter_col
Однако это приводит к разреженной матрице. Как мне создать одну переменную из этого? Суммирование не работает, поскольку пустые пространства обрабатываются как числа и делают это: sum(X_test[filter_col]*filter_col)
Я получаю
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Есть предложения о том, как поступить? Это даже лучший подход или какая-то функция выполняет именно то, что мне нужно?
В качестве запроса, вот пример, взятый из здесь :
df= pd.DataFrame({
'mycol':np.random.choice( ['panda','python','shark'], 10),
})
df=pd.get_dummies(df)