【问题标题】:IndexError using pandas pivot_table method使用 pandas pivot_table 方法的 IndexError
【发布时间】:2023-04-08 12:06:01
【问题描述】:

系统: 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

已采取措施:

  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

【问题讨论】:

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

标签: python python-3.x pandas dataframe pivot-table


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2019-12-26
    • 2023-04-08
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多