如何为Pandas DataFrame设置MultiIndex(多级索引)?
为DataFrame设置多级索引并实现数据检索
设置多级索引
你可以直接使用pandas的set_index()方法,传入要作为索引的列名列表(['year', 'date']),就能创建基于年份和日期的多级索引(MultiIndex):
import pandas as pd # 假设你的DataFrame已经定义为df df_multi = df.set_index(['year', 'date']) # 如果想直接修改原DataFrame,加上inplace=True参数 # df.set_index(['year', 'date'], inplace=True)
设置完成后,你的DataFrame索引会变成两级:第一级是year,第二级是date,结构示例如下:
Time observation1 observation2 year date 2012 11-02 09:12:00 79.373668 224 11-02 09:13:00 130.841316 477 11-05 09:14:00 45.312814 835 ...
检索特定数据
设置好多级索引后,用.loc就能轻松实现目标检索:
- 获取某一年的所有数据:
# 获取2012年的全部数据 df_2012 = df_multi.loc[2012]
- 获取特定年份+日期的数据:
# 获取2013年11月5日的全部数据 df_2013_1105 = df_multi.loc[(2013, '11-05')]
可选优化:排序索引
如果你的数据未按年份和日期排序,建议设置索引后执行排序,既能提升检索效率,也能让索引结构更清晰:
df_multi_sorted = df_multi.sort_index()
内容的提问来源于stack exchange,提问作者user398843
相关产品推荐
相关产品推荐

