我对一个变量进行了一次独热编码,经过一些计算后,我希望能够恢复到原始变量。
我的做法是:
1.筛选独热编码列的名称(它们都以原始变量的名称开头,比如说'mycol')
我的做法是:
1.筛选独热编码列的名称(它们都以原始变量的名称开头,比如说'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)
(X_test[filter_col]*filter_col).sum()
还是(X_test[filter_col]*filter_col).sum(axis=1)
? - jezraelX_test[filter_col].idxmax(1).str.replace('mycol_', '')
是关于编程的内容,无法直接翻译成中文。请提供更多上下文或者更具体的信息,以便进行准确翻译。 - Chris Adams(X_test[filter_col]*filter_col).sum(axis=1)
。你能把它发表为答案,这样我就可以接受它了吗? - CAPSLOCK1
,是吗?如果是,那么接受的解决方案可行,否则不行。 - jezrael