python - 将数据透视应用于 Pandas Dataframe

标签 python pandas

我有一个稀疏的 DataFrame:

df = pd.DataFrame([[1, 1],[1, 2], [2,1], [2,3], [3,4]], columns=['userId', 'movieId'])

看起来像这样:

   userId  movieId
0       1        1
1       1        2
2       2        1
3       2        3
4       3        4

我想转换此表,使其看起来像这样:

                movieId
userId      1      2    3   4
     1      1      1    0   0
     2      1      0    1   0
     3      0      0    0   1

最佳答案

您可以调用.pivot在 df 上传递索引、列和值的相关列。在这里,我创建了一个 bool df,因为在没有值的情况下将引入 NaN 值,并将 dtype 转换为 int 以生成您想要的内容:

In [9]:
(df.pivot(index='userId', columns='movieId', values='movieId') > 0).astype(int)

Out[9]:
movieId  1  2  3  4
userId             
1        1  1  0  0
2        1  0  1  0
3        0  0  0  1

这是中间数据透视表的样子:

In [11]:
df.pivot(index='userId', columns='movieId', values='movieId')

Out[11]:
movieId   1   2   3   4
userId                 
1         1   2 NaN NaN
2         1 NaN   3 NaN
3       NaN NaN NaN   4

关于python - 将数据透视应用于 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046907/

相关文章:

python - 如何修复 2 位数总和的 python 代码中的 ValueError?

python - pandas groupby/apply 性能缓慢

python - pandas df.fillna - 在外连接后用正确的值填充 NaN

python - 如何获取仅属于我们在左连接中引入的右表的列名

python - Pandas 新列基于另一个 Pandas 的列的总和

python - django 无法连接 aws 上的 mysql 服务器

python - Cloud Storage 存储桶的 Cloud SQL 导入权限问题

python - 按名称抑制记录器

python - 用之前的非缺失值填充缺失的 pandas 数据,按键分组

python - 将数据分配给多索引 pandas 数据框的子集的正确方法