编码后连接数据帧
Concatenate dataframes after encoding
我正在尝试组合一个数组和一个矩阵。
具体来说,数组包含数字数据(年),而矩阵包含编码数据。
特点如下:
X_a=df.Year
Name: Year, Length: 5854, dtype: float64
vectorizer = CountVectorizer()
X_t = vectorizer.fit_transform(df['Text'].replace(np.NaN, ""))
Out: <5854x8206 sparse matrix of type '<class 'numpy.int64'>'
with 25871 stored elements in Compressed Sparse Row format>
我试过如下:
X= pd.concat([X_a, X_t], axis=1)
但我遇到了错误:
TypeError: cannot concatenate object of type '<class 'scipy.sparse.csr.csr_matrix'>'; only Series and DataFrame objs are valid
能否请您告诉我是否可以将这两个数据集连接起来以及如何连接?
数据:
Year Text
1999 _italic_
2000 add language identifier to highlight code
2004 escape put returns between paragraphs
...
错误消息基本上是在告诉您问题所在。您只能连接 pandas 系列和数据帧。 SKLearn 没有 return 那些,而是 numpy 数组。此外,在这种情况下,它会创建一个稀疏数组。
您可以在这里做几件事,具体取决于易用性和内存性能。可能最简单的是使用
X_t = pd.DataFrame(vectorizer.fit_transform(df['Text'].replace(np.NaN, "")).todense(), index=df.index)
但请注意,它创建了一个密集矩阵,然后是密集数据帧。
我正在尝试组合一个数组和一个矩阵。 具体来说,数组包含数字数据(年),而矩阵包含编码数据。
特点如下:
X_a=df.Year
Name: Year, Length: 5854, dtype: float64
vectorizer = CountVectorizer()
X_t = vectorizer.fit_transform(df['Text'].replace(np.NaN, ""))
Out: <5854x8206 sparse matrix of type '<class 'numpy.int64'>'
with 25871 stored elements in Compressed Sparse Row format>
我试过如下:
X= pd.concat([X_a, X_t], axis=1)
但我遇到了错误:
TypeError: cannot concatenate object of type '<class 'scipy.sparse.csr.csr_matrix'>'; only Series and DataFrame objs are valid
能否请您告诉我是否可以将这两个数据集连接起来以及如何连接?
数据:
Year Text
1999 _italic_
2000 add language identifier to highlight code
2004 escape put returns between paragraphs
...
错误消息基本上是在告诉您问题所在。您只能连接 pandas 系列和数据帧。 SKLearn 没有 return 那些,而是 numpy 数组。此外,在这种情况下,它会创建一个稀疏数组。
您可以在这里做几件事,具体取决于易用性和内存性能。可能最简单的是使用
X_t = pd.DataFrame(vectorizer.fit_transform(df['Text'].replace(np.NaN, "")).todense(), index=df.index)
但请注意,它创建了一个密集矩阵,然后是密集数据帧。