首页 > 解决方案 > 如何根据熊猫数据框中的行和列分隔条目

问题描述

我有一个看起来像这样的数据框:

   '0' '1' '2'
0   5   4   0
1   3   0   0
2   1   0   2

其中列的名称('0'、'1'、'2'、...)表示用户 ID,索引表示电影 ID,每个条目表示用户对该电影的评分。

我想在前一个的基础上制作一个新的数据框,如下所示:

  user_id   movie_id  rating
0   0         0         5
1   0         1         3
2   0         2         1
3   1         0         4
4   1         1         0
5   1         2         0
6   2         0         0
7   2         1         0
8   2         2         2

我是熊猫的新手,想知道如何在不遍历所有条目的情况下做到这一点。

标签: pythonpython-3.xpandasdataframe

解决方案


你可以得到它stack(),然后reset_index()

df = df.stack().reset_index()
df.columns = ['user_id','movie_id','rating']
print(df)
   user_id  movie_id  rating
0        0         0       5
1        0         1       4
2        0         2       0
3        1         0       3
4        1         1       0
5        1         2       0
6        2         0       1
7        2         1       0
8        2         2       2

推荐阅读