Pandas多个DataFrame设置指定起始索引报错如何解决
错误原因
你编写的索引赋值代码逻辑存在错误:Python的range(start, end)在start大于end且步长为默认正整数时,会生成空序列。你传入的range结束值为vaex_df2.shape[0] + 1,该值远小于起始值50001,因此生成的索引序列长度为0,和DataFrame实际行数(报错显示为1024行)不匹配,触发长度不匹配错误。
正确实现方案
设置指定起始索引的核心逻辑为:生成从目标起始值开始、长度和DataFrame行数完全一致的连续整数序列,range的结束值应为起始索引 + DataFrame行数。各DataFrame的设置代码如下:
- 第二个DataFrame(起始索引50001)
vaex_df2.index = range(50001, 50001 + vaex_df2.shape[0])
- 第三个DataFrame(起始索引100001)
vaex_df3.index = range(100001, 100001 + vaex_df3.shape[0])
- 第四个DataFrame(按间隔规律起始索引设为150001)
vaex_df4.index = range(150001, 150001 + vaex_df4.shape[0])
- 第五个(最后一个)DataFrame(起始索引200001)
vaex_df5.index = range(200001, 200001 + vaex_df5.shape[0])
补充说明
如果后续需要合并5个DataFrame,直接使用vaex的concat方法即可,已设置的索引不会被重置,可保证跨DataFrame的索引唯一性。
内容的提问来源于stack exchange,提问作者Alok Sharma
相关产品推荐
相关产品推荐

