使用 pandas pivot_table 方法的 IndexError

Posted

技术标签:

【中文标题】使用 pandas pivot_table 方法的 IndexError【英文标题】:IndexError using pandas pivot_table method 【发布时间】:2020-06-26 13:03:04 【问题描述】:

系统: WIN10

IDE: ANACONDA/Jupyter 实验室

语言: Python 3.7.3 版

库:熊猫版本 1.0.1

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

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

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

已采取措施:

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

代码:

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

【问题讨论】:

1) 您希望数据是什么样的? 2)你使用的是哪个movielens数据集?我只是使用ml-latest-small.zip 并没有收到错误。但是,数据透视表中只有 5 行不是 100% 为空的... 这可能会有所帮助。也许目前熊猫数据透视表的数据太大了? ***.com/questions/48492451/… @大卫埃里克森,哇!我希望情况并非如此。我刚刚阅读了关于这个的 git repo,似乎一年前的对话已经过时了:( @Anders Swanson,我现在要下载该文件集并进行测试。我正在使用更广泛的文件集:(ml-25m.zip)。由于目前没有已知的解决方法,您是否知道另一个处理大型矩阵的平台? 重新考虑在自己的列中为每个不同的移动标题生成如此宽的数据框。您希望通过这样的设置运行什么分析? 【参考方案1】:

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

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

【讨论】:

以上是关于使用 pandas pivot_table 方法的 IndexError的主要内容,如果未能解决你的问题,请参考以下文章

使用 pivot_table 将一列 dict 聚合到一个 dict 列表中 - Pandas

图解Pandas透视表pivot_table

Windows下PythonQt3.2使用pandas.pivot_table

数据分析——python,pandas:DataFrame对象(pivot_table函数的使用)数据透视表

pandas 透视表 pivot_table

Pandas 透视表pivot_table详解