Pandas透视表KeyError

4
我的数据如下所示;
  'userID'  'songID'  'rating'
0         0      7171         5
1         0      8637         4
2         0     21966         4
3         0     35821         5
4         0     82446         5

以下是我的代码,用于创建数据透视表:

ratings = pd.pivot_table(data,
                         index="userID",
                         columns="songID",
                         values="rating")

我遇到了一个 KeyError:'rating' 的问题。

我查看了其他答案,大部分建议使用 .reset_index(),但这并没有解决我的问题。我一直得到同样的错误。

有什么建议可以解决这个问题吗?

提前感谢。


KeyError means there is no column rating, test it by print (data.columns.tolist()) - jezrael
我得到了以下输出:["'userID'", "'songID'", "'rating'"] - Tyr
此外,检查“values”列是否为相同类型。pd.melt 可以创建包含数字和字符值的列。 - Paul Mwaniki
2个回答

4

列名存在问题:

print (data.columns.tolist())
["'userID'", "'songID'", "'rating'"]

您可以通过以下方式去除尾随的单引号:strip
ratings.columns = ratings.columns.str.strip("'")
ratings = pd.pivot_table(data, index = "userID", columns = "songID", values = 'rating')

2
您的列周围有额外的引号 'xx',如果您想保留它,请使用以下内容。
ratings = pd.pivot_table(df, index = "'userID'", columns = "'songID'", values = "'rating'")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接