我在Python熊猫中使用电影镜头数据集。我需要打印矩阵的u.data
一个制表符分隔文件在下面。方式
NULL MovieID1 MovieID2 MovieID3
UserID1 Rating Rating Rating
UserID2 Rating Rating Rating
我已经通过以下链接
df.iloc
和df.ix
也不起作用我需要输出,因为它显示我的评级和NaN(当未评级)的电影w. r. t.用户。
NULL MovieID1 MovieID2 MovieID3
UserID1 Rating Rating NaN
UserID2 Rating NaN Rating
另外,我不介意使用numpy、crab、recsys、csv或任何其他python包的解决方案
EDIT 1-排序数据并导出,但得到一个额外的字段
df2 = df.sort_values(['UserID','MovieID'])
print type(df2)
df2.to_csv("sorted.csv")
print df2
文件产生foll.sorted.csv文件
,UserID,MovieID,Rating,TimeStamp
32236,1,1,5,874965758
23171,1,2,3,876893171
83307,1,3,4,878542960
62631,1,4,3,876893119
47638,1,5,3,889751712
5533,1,6,5,887431973
70539,1,7,4,875071561
31650,1,8,1,875072484
20175,1,9,5,878543541
13542,1,10,3,875693118
编辑2-如评论中所述
这是作为输入u.data文件中数据的格式
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116
244 51 2 880606923
166 346 1 886397596
298 474 4 884182806
115 265 2 881171488
253 465 5 891628467
305 451 3 886324817
一种方法:
使用pivot_表,如果每个用户和电影id有一个值,则aggfunc无关紧要,但是如果有多个值,则选择聚合。
df.pivot_table(values='Rating',index='UserID',columns='MovieID', aggfunc='mean')
第二种方法(没有重复的用户ID,电影记录):
df.set_index(['UserID','MovieID'])['Rating'].unstack()
第三种方法(无重复的用户ID、电影ID记录):
df.pivot(index='UserID',columns='MovieID',values='Rating')
第四种方法(与第一种方法类似,您可以选择聚合方法):
df.groupby(['UserID','MovieID'])['Rating'].mean().unstack()
输出:
MovieID 1 2 3 4 5 6 7 8 9 10
UserID
1 5 3 4 3 3 5 4 1 5 3
问题内容: 我正在自学一些Java,并且坚持创建2D数组,该数组使用随机值对其进行初始化,然后创建该数组的转置。 示例输出为: 原始矩阵 转置矩阵 ^应该是最终输出。代码的一些帮助将不胜感激! 如果行或列的数量超出指定范围,我想编写代码以生成错误消息。以及是否从命令行读取矩阵元素而不是随机生成它们。 问题答案: 这是返回转置矩阵的int [] []的简单方法… 比起打印二维矩阵,您可以使用如下方法
我想在不同的列表中加入多个向量,并输出一个矩阵列表。其思想是,列表中具有相同名称的所有项目,例如所有项目,通过行作为矩阵连接起来。增加的复杂性是,这些向量可以具有不同的长度,因此实现起来并不简单;矩阵中缺少的值可以附加s。 输入列表: 我希望获得的理想输出是一个列表,其中矩阵的数量与唯一列表项的数量相同,其中每个矩阵由行绑定的不同长度的向量组成: 我将如何编写一个函数,它也可以扩展到合并具有不同长
本文向大家介绍螺旋打印矩阵,包括了螺旋打印矩阵的使用技巧和注意事项,需要的朋友参考一下 该算法用于以螺旋方式打印数组元素。首先,从第一行开始,先打印全部内容,然后按照最后一列打印,然后再最后一行,依此类推,从而以螺旋方式打印元素。 该算法的时间复杂度为O(MN),M为行数,N为列数。 输入输出 算法 输入: 矩阵矩阵,行和列m和n。 输出:以螺旋方式打印矩阵的元素。 示例 输出结果
我有一个尺寸为3695 X 20的数据框。第一列包含字母数字标识符,其他19列都是数字。因此,rownames(df)提供数字1-3695,colnames(df)提供列的名称。df[,1]提供字母数字标识符。 我希望将数据框转换为矩阵,并使用现有数据框的第1列作为新矩阵的行名称,并将数据框的列名保留为矩阵的列名。 我还想自动化这个过程,用于类似但不同维度的数据帧。因此,如果解决这个问题需要知道行
我想用一个整数的方法打印一个螺旋矩阵。然而,我在纸上的代码运行得很好,但是当我运行时,我会得到不同的数字来代替我想要的数字。 在现实中,它应该打印如下内容 如果您能帮忙,我们将不胜感激。
问题内容: 我正在尝试为python创建矩阵转置函数,但似乎无法使其工作。说我有 我想提出我的职能 因此,换句话说,如果我要将此2D数组打印为列和行,我希望将行变成列,将列变成行。 我到目前为止已经做到了,但是没有用 问题答案: Python 2: Python 3: