1

我想创建一个包含用户(行)、项目(列)和评级(值)的数据透视表。有些用户对许多不同的项目进行了评分。我从 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 超出轴 0 的范围,大小为 502966644”

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

你能给我任何想法吗?先感谢您!

4

0 回答 0