如何将数据框转换为数据透视表

时间:2019-07-03 20:03:49

标签: python pandas dataframe pivot-table recommender-systems

我想创建一个包含用户(行),项目(列)和评分(值)的数据透视表。有些用户对许多不同的项目进行了评分。我从json文件中提取数据,并且在创建数据透视表时,我不想聚合它们。

import pandas as pd
with open('data.json', 'r') as file:
    lines = file.readlines()
    for line in lines:
    user = splitted[0]
    ratings = splitted[1]
    item = splitted[4]
    users.append(user)
    items.append(item)
    ratings.append(ratings)

df = pd.DataFrame({'Users': users,
                    'Items': items,
                    'Ratings': ratings})

数据框的输出为:

User  Item  Ratings

anna   A    2

anna   B    4

anna   C    3

chris  A    2

bob    D    1

我希望我的数据透视表是这样的:

       A  B  C  D

anna   2  4  3  -
chris  2  -  -  -
bob    -  -  -  1

运行此命令时,出现错误:“没有要聚合的数字类型”

pivot = df.pivot_table(values = 'Ratings', index = 'Users', columns = 'Items')

运行此命令时,错误是:“索引502966764超出了尺寸为502966644的轴0的范围”

pivot = df.pivot(values = 'Ratings', index = 'Users', columns = 'Items')

你能给我个主意吗?预先谢谢你!

0 个答案:

没有答案