使用 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
Windows下PythonQt3.2使用pandas.pivot_table