Pandas DataFrame多级索引处理:删除指定层级保留其余索引实现方案
解决方案
你可以通过droplevel删除指定层级的索引,再用reset_index将剩余索引转为普通列即可,代码如下:
# 第一步:删除最外层(位置为0)的第一个Date索引 df = df.droplevel(0) # 第二步:将剩余的FIPS_state、第二个Date索引转为普通列,同时生成默认的数字行索引 df = df.reset_index()
也可以合并为一行代码:
df = df.droplevel(0).reset_index()
原理说明
你当前的DataFrame为三级索引,从外到内层级位置依次为0、1、2,对应名称分别为Date、FIPS_state、Date:
droplevel(0)直接移除最外层重复的Date索引reset_index()默认会把所有留存的层级索引都转为普通数据列,同时自动生成从0开始的整数行索引,刚好匹配你需要的输出格式。
内容的提问来源于stack exchange,提问作者PatrickT
相关产品推荐
相关产品推荐

