如何提取pandas MultiIndex层级为Series并保留原MultiIndex
解决方案
创建 Series
直接利用 MultiIndex 的 get_level_values 方法提取 second 层级的值作为数据,同时将原 MultiIndex 设为 Series 的索引即可:
import pandas as pd multiindex = pd.MultiIndex.from_product([['a', 'b'], range(3)], names=['first', 'second']) # 生成目标 Series result_series = pd.Series( data=multiindex.get_level_values('second'), index=multiindex )
输出结果:
first second a 0 0 1 1 2 2 b 0 0 1 1 2 2 Name: second, dtype: int64
创建 DataFrame
如果需要 DataFrame 格式,有两种简单方式:
# 方式1:从已生成的 Series 转换 result_df = result_series.to_frame(name='second') # 方式2:直接构造 DataFrame result_df = pd.DataFrame( data={'second': multiindex.get_level_values('second')}, index=multiindex )
输出结果:
second first second a 0 0 1 1 2 2 b 0 0 1 1 2 2
以上方法均不会修改原有 DataFrame,而是基于你提供的 MultiIndex 生成新对象,完全适配后续计算需求。
内容的提问来源于stack exchange,提问作者william_grisaitis
相关产品推荐
相关产品推荐

