gpt4 book ai didi

python - 如何迭代数据框

转载 作者:行者123 更新时间:2023-12-01 07:27:47 26 4
gpt4 key购买 nike

我有一个用户、书籍和评分的数据集,我想找到对特定书籍评分较高的用户,并且对于这些用户,我想找到他们也喜欢的其他书籍。

我的数据如下:

df.sample(5)

User-ID ISBN Book-Rating
49064 102967 0449244741 8
60600 251150 0452264464 9
376698 52853 0373710720 7
454056 224764 0590416413 7
54148 25409 0312421273 9

到目前为止我所做的:

df_p = df.pivot_table(index='ISBN', columns='User-ID', values='Book-Rating').fillna(0)
lotr = df_p.ix['0345339703'] # Lord of the Rings Part 1
like_lotr = lotr[lotr > 7].to_frame()
users = like_lotr['User-ID']

最后一行失败

KeyError: 'User-ID'

我想获取LOTR > 7的用户,以便这些用户进一步从矩阵中找到他们也喜欢的电影。

如果有帮助,我们将不胜感激。谢谢。

最佳答案

在您的 like_lotr 数据框中,'User-ID' 是索引的名称,您无法像普通列一样选择它。这就是为什么 users = like_lotr['User-ID'] 行引发 KeyError 的原因。它不是一个专栏。

此外,不推荐使用 ix ,最好在您的情况下使用 loc 。并且不要加引号:它必须是一个整数,因为 'User-ID' 最初是一列整数(至少来自您的示例)。

尝试这样:

df_p = df.pivot_table(index='ISBN', columns='User-ID', values='Book-Rating').fillna(0)
lotr = df_p.loc[452264464] # used another number from your sample dataframe to test this code.
like_lotr = lotr[lotr > 7].to_frame()
users = like_lotr.index.tolist()

user 现在是一个包含您想要的 ID 的列表。

使用上面的小样本和我用来测试的数字,用户[251150]

<小时/>

另一种解决方案是使用reset_index。最后两行应该如下所示:

like_lotr = lotr[lotr > 7].to_frame().reset_index()
users = like_lotr['User-ID']

reset_index 将索引放回列中。

关于python - 如何迭代数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57363295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com