Pandas循环读取列表仅返回前53条,超数触发ValueError是什么原因?
报错触发原因
- 核心诱因是
contenders_list中第54条及之后的数据结构,和前53条数据结构不一致。 - 前53条数据的每个字段对应的值都是非标量结构(比如列表、嵌套字典等可迭代对象),调用
pd.DataFrame(contenders_list[i])时,pandas可以自动根据可迭代对象的长度生成对应行索引,不需要额外指定参数。 - 索引≥53的元素(也就是第54条及之后的数据)所有字段对应的值都是单个标量(比如单独的数字、字符串、空值等),此时传入全是标量的字典生成DataFrame,pandas无法推断行索引的生成规则,就会抛出该报错。
- 额外注意你提供的代码存在笔误:循环生成的DataFrame全部追加到了
df_list变量中,但执行拼接时传入的是mylist变量,若你没有提前定义mylist,还会额外触发NameError,建议调整拼接代码为new_df = pd.concat(df_list)。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

