如何根据data.frame中的两列将data.frame转换为矩阵

Nic*_*s H 6 python-3.x pandas pandas-groupby

我有一个数据框看起来像

    userId  movieId rating
0   12882   1      4.0
1   12882   32     3.5
2   12882   47     5.0
3   12882   50     5.0
4   12882   110    4.5
Run Code Online (Sandbox Code Playgroud)

但我想将其转换为一个矩阵,其中行名是 userId,列名是 movieId,值是评级。

         1    32      47
12882   4.0   3.5     5.0

Run Code Online (Sandbox Code Playgroud)

我尝试过使用 groupby,但之后我不知道如何转换它。

test = Ratings[['userId','movieId','rating']]

test_group = test.groupby(['userId','movieId'],as_index=False,sort=False)


Run Code Online (Sandbox Code Playgroud)

Chr*_*s A 4

您可以DataFrame.pivot为此使用:

df_pivot = df.pivot(index='userId', columns='movieId', values='rating')
Run Code Online (Sandbox Code Playgroud)

[出去]

print(df_pivot)

movieId  1    32   47   50   110
userId                          
12882    4.0  3.5  5.0  5.0  4.5
Run Code Online (Sandbox Code Playgroud)