Pandas数据帧内存python

2024-04-27 03:09:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个稀疏矩阵(156060x11780)转换成数据帧,但是我得到了一个内存错误这是我的代码

vect = TfidfVectorizer(sublinear_tf=True, analyzer='word', 
                       stop_words='english' , tokenizer=tokenize,
                       strip_accents = 'ascii') 

X = vect.fit_transform(df.pop('Phrase')).toarray()

for i, col in enumerate(vect.get_feature_names()):
    df[col] = X[:, i]

我在X = vect.fit_transform(df.pop('Phrase')).toarray()中遇到问题。我该怎么解决呢?在


Tags: 数据内存代码df错误transform矩阵col
1条回答
网友
1楼 · 发布于 2024-04-27 03:09:25

试试这个:

from sklearn.feature_extraction.text import TfidfVectorizer
vect = TfidfVectorizer(sublinear_tf=True, analyzer='word', stop_words='english',
                       tokenizer=tokenize,
                       strip_accents='ascii',dtype=np.float16)
X = vect.fit_transform(df.pop('Phrase'))  # NOTE: `.toarray()` was removed


for i, col in enumerate(vect.get_feature_names()):
    df[col] = pd.SparseSeries(X[:, i].toarray().reshape(-1,), fill_value=0)

更新:对于Pandas 0.20+我们可以直接从稀疏数组构造SparseDataFrame

^{pr2}$

相关问题 更多 >