Pandas中groupby并resample后如何移除多重索引
如何移除Pandas多重索引?
刚好用Pandas处理过重采样后生成多重索引的场景,给你几个简单直接的解决办法:
方法一:使用reset_index()(最常用)
这是移除多重索引最直观的方式,它会把所有的索引级别都转化为DataFrame的普通列:
df = df.reset_index()
执行后,原来的stage和timestamp这两个多重索引就会变成普通列,DISCH_PRESS列的结构也会保持不变,完美适配你的需求。
如果只需要将部分索引转为列(比如仅处理timestamp),可以通过level参数指定目标索引:
df = df.reset_index(level='timestamp')
方法二:重采样时提前避免多重索引
如果你还没执行重采样操作,其实可以在分组环节就避免生成多重索引,只需要在groupby时加上as_index=False,再结合重采样逻辑:
df = df.groupby(['stage'], as_index=False).resample('1S', on='timestamp').asfreq()
这样生成的结果就不会带有多重索引,一步到位省去后续处理步骤。
内容的提问来源于stack exchange,提问作者red79phoenix
相关产品推荐
相关产品推荐

