Python Pandas调用reindex时原有索引对应数据全部丢失问题求解
问题原因
你调用reindex方法时传入的index参数仅包含[30, 182]两个值,reindex的逻辑是仅保留传入索引列表中存在的行,原有索引9、44、72、135、226都不在传入列表里,所以全部被过滤,仅返回两个对应空行。
正确操作步骤
- 完成索引设置后,先将原有索引和待插入的索引值合并再排序,得到完整的目标索引列表:
order_adj = [30, 182] # 合并原有索引与待插入索引后排序 full_index = sorted(df.index.tolist() + order_adj) # 用完整索引执行reindex df = df.reindex(full_index)
执行后就能得到你预期的、包含原有所有行和两个插入空行的结果。
小提示:你也可以用
df = df.set_index('Order', drop=False)实现相同的索引设置效果,无需手动赋值索引。
内容的提问来源于stack exchange,提问作者Whitebeard13
相关产品推荐
相关产品推荐

