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中实现这一目标的最佳方法是什么?
修改:数据太大而无法迭代。
答案 0 :(得分:0)
你可以用熊猫做到这一点。
更新08.08.2018:
正如CanKavaklıoğlu所注意到的那样,{Pandas版本0.23.0已弃用as_matrix()
。已更改为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