Pandas多列设置多级索引无效问题求助
问题解决:set_index后多级索引未生效的原因及修复方法
问题出在set_index()的默认行为上:这个方法不会直接修改原DataFrame,而是返回一个已经设置好索引的新DataFrame对象。你没有将这个新对象重新赋值给projection,所以原变量的索引没有发生变化。
有两种修复方式:
方式一:重新赋值变量(推荐)
将set_index()的返回结果赋值给projection,覆盖原变量:projection = projection.set_index(['<DATE>', '<TIME>'])方式二:使用inplace参数直接修改原对象
在调用set_index()时添加inplace=True参数,直接在原DataFrame上修改索引:projection.set_index(['<DATE>', '<TIME>'], inplace=True)
注意:更推荐方式一,因为
inplace=True的操作会跳过一些pandas的内部校验,且不利于链式代码编写,容易引发意外的数据修改。
内容的提问来源于stack exchange,提问作者ahmad mirzaee
相关产品推荐
相关产品推荐

