【问题标题】:Creating a sparse matrix from csv file data从 csv 文件数据创建稀疏矩阵
【发布时间】:2018-08-03 18:18:42
【问题描述】:

csv 文件中的数据格式为(“user_id”、“group_id”、“group_value”)。 "group_id" 范围从 0 到 100。

对于给定的 user_id,特定 group_id 的 group_value 可能不可用。

我想为上述数据创建一个稀疏矩阵表示。 ("group_id_0", "group_id_1", ... , "group_id_100")

在 Python 中实现这一目标的最佳方法是什么?

编辑:数据太大,无法迭代。

【问题讨论】:

  • 你可以使用 Scikit-Learn One hot encoder
  • 您必须首先将 id 映射到唯一的整数上。稀疏矩阵的维度被简单地索引为 0,1,2,.... 没有花哨的标签。根据您的描述,group_id 已经适合具有 101 列的稀疏矩阵。

标签: python pandas numpy scipy sparse-matrix


【解决方案1】:

你可以用 pandas 做到这一点。

2018 年 8 月 8 日更新:

正如 Can Kavaklıoğlu 所指出的,as_matrix() 自 pandas 0.23.0 版起已弃用。改为values

import pandas as pd

df = pd.read_csv('csv_file.csv', names=['user_id', 'group_id', 'group_value'])
df = df.pivot(index='user_id', columns='group_id', values='group_value')
mat = df.values

【讨论】:

猜你喜欢
  • 2014-11-30
  • 2017-03-31
  • 2012-01-10
  • 2017-04-21
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多