首页 > 解决方案 > 使用 pandas pivot_table 方法的 IndexError

问题描述

系统: WIN10

IDE: ANACONDA/Jupyter 实验室

语言: Python 3.7.3 版

库:熊猫版本 1.0.1

数据来源: https ://grouplens.org/datasets/movielens/

数据集: movies.csv;评级.cvs (ml-25m.zip)

在尝试编写数据透视表时,由于某种原因我遇到了问题。组合表有超过 25M 条记录,我的代码不断抛出以下错误:IndexError: index 993158425 is out of bounds for axis 0 with size 993157686

采取了以下措施:

  1. 测试了 nan 值的数据框形状并清理了它们
  2. 在线搜索错误代码,找不到任何东西
  3. 尝试了各种编写数据透视表的方法:.pivot 和 .pivot_table
  4. 将交叉表视为一种解决方法:这行不通

代码:

df1_movies = pd.read_csv('Data/movies.csv')
df1_ratings = pd.read_csv('Data/ratings.csv')

df1_main = pd.merge(df1_movies, df1_ratings, on='movieId')
table = df1_main.pivot_table(index='userId', columns='title', values='rating')

错误

IndexError: index 993158425 is out of bounds for axis 0 with size 993157686

标签: pythonpython-3.xpandasdataframepivot-table

解决方案


感谢 David Erickson 指出关于该主题的未解决问题:

有一个描述此错误的开放 Pandas 问题。截至 2020 年 8 月 31 日,目前唯一的解决方法似乎是减少您的数据集。


推荐阅读