python - 编码后连接数据帧
问题描述
我正在尝试组合一个数组和一个矩阵。具体来说,数组包含数字数据(年),而矩阵包含编码数据。
特点如下:
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 不返回那些,而是返回 numpy 数组。此外,在这种情况下,它会创建一个稀疏数组。
您可以在这里做几件事,具体取决于易用性与内存性能。可能最简单的方法是使用
X_t = pd.DataFrame(vectorizer.fit_transform(df['Text'].replace(np.NaN, "")).todense(), index=df.index)
但请注意,它会创建一个密集矩阵,然后创建密集数据帧。
推荐阅读
- python - if语句不从列表Python3中删除元素
- json - json.dump() 不获取字典列表
- c++ - 避免使用隐式 lambda 捕获绑定语言环境变量?
- reactjs - 如何使用 useEffect 挂钩执行自定义逻辑并重定向到 react 或 nextjs 中的另一个页面
- python - 将 nd-array 拆分为重叠的子 nd-array
- javascript - 模态内容“页面”并从按钮返回上一页
- javascript - 如何使页脚随内容移动(使其具有响应性)?
- php - 从路由返回了无效的 JSON,Laravel 8 单元测试
- ios - 如何强制 Xcode 在构建阶段运行运行脚本
- python - 错误:(-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow' while video streaming from Webcam