[英]Convert Numpy matrix to pandas dataframe
给定.dat中的评分矩阵:
rating = np.load(os.path.join(data_dir, "rating.dat"))
matrix([[ 5, 4, 0, 0],
[ 0, 0, 5, 0],
[ 0, 0, 0, 1],
[ 0, 0, 0, 1]])
和df之类的:
df=pd.read_csv('data_path')
df
user item
0 foo qw
1 foo rt
2 coo ty
3 doo yu
4 moo yu
评分矩阵行对应于user
和列item
,值是评分。 我想将此矩阵添加到我的df
作为附加列,以得到如下结果:
user item rating
0 foo qw 5
1 foo rt 4
2 coo ty 5
3 doo yu 1
4 moo yu 1
先感谢您!
给定一个评分矩阵:
ratings = np.asarray([
[ 5, 4, 0, 0],
[ 0, 0, 5, 0],
[ 0, 0, 0, 1],
[ 0, 0, 0, 1]
])
ratings.flatten()[ratings.flatten().nonzero()]
Out[1]: array([5, 4, 5, 1, 1])
诀窍是使矩阵变平并删除非零元素。 然后只需df['ratings'] = ratings
,您就可以按正确的顺序填充列。 请注意,如果某位用户进行了多条评论,则df
也会有几行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.