python - 如何根据pandas数据框中的行和列分隔条目

标签 python python-3.x pandas dataframe

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

   '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
我是 Pandas 的新手,想知道如何在不遍历所有条目的情况下做到这一点。

最佳答案

您可以通过 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

关于python - 如何根据pandas数据框中的行和列分隔条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65525023/

相关文章:

python - 如何优化这个 numpy 代码以使其更快?

python - 删除除一列之外的所有 Pandas 数据框?

python - 子进程.CalledProcessError : what *is* the error?

python - 更小的应用足迹是否意味着更便宜的 PaaS 成本?哪种语言?

python - 手势检测

python - 无法为 Python 3 安装 Python 虚拟环境

python - 设置使用 SHA 256 加密的 Jupyter Lab 密码

python - 如何测试从某个抽象类继承的对象类

python - 在复平面上绘制图形

python - 当 window = 1 时,pandas 滚动平均值可能存在错误