Python 只能使用';。稀疏';稀疏数据存取器
我用sparse=True参数对我的数据执行了OHE,这似乎没有什么作用 我试过:Python 只能使用';。稀疏';稀疏数据存取器,python,pandas,numpy,Python,Pandas,Numpy,我用sparse=True参数对我的数据执行了OHE,这似乎没有什么作用 我试过: # One Hot Encoding df_ohe = pd.get_dummies(df, columns=cats, drop_first=True, sparse=True) df_ohe = df_ohe.sparse.to_coo().tocsr() #Explicitely convert df_ohe.memory_usage().sum() …返回 AttributeError:只能对稀疏数据使
# One Hot Encoding
df_ohe = pd.get_dummies(df, columns=cats, drop_first=True, sparse=True)
df_ohe = df_ohe.sparse.to_coo().tocsr() #Explicitely convert
df_ohe.memory_usage().sum()
…返回
AttributeError:只能对稀疏数据使用“.sparse”访问器
我们将不胜感激。谢谢 您需要使用导入csr_矩阵方法(将numpy数组转换为稀疏矩阵) 然后你就可以写了
df_ohe = pd.get_dummies(df, columns=cats, drop_first=True)
df_ohe = csr_matrix(df_ohe.values)
请注意,这里我从get_dummies方法中删除了
sparse=True
,然后更改了转换为稀疏矩阵的语法。我将其标记为正确答案,但在OHE之后有很多列的数据帧上,我的内存不足。谢谢。经过一点研究,看起来get_假人中有一个bug导致了这个问题。见和。要解决内存问题可能需要一些黑客。是的,我也发现了。这是最新的版本更新,以前可以使用。希望能尽快解决。谢谢你的评论!
df_ohe = pd.get_dummies(df, columns=cats, drop_first=True)
df_ohe = csr_matrix(df_ohe.values)