繁体   English   中英

如何设置pandas多索引?

[英]How to set pandas multiindex?

我有一个数据框 df ,它看起来像这样:

日期 时间 观察1 观察2
2012 11-02 9:12:00 79.373668 224
2012 11-02 9:13:00 130.841316 477
2012 11-05 9:14:00 45.312814 835
2013 11-05 9:15:00 123.776946 623
2013 11-05 9:16:00 79.373668 224
2013 11-22 9:17:00 130.841316 477
2013 11-22 9:18:00 45.312814 835
2014 11-01 9:19:00 123.776946 623

我想使用年份和日期作为索引,以便我可以检索特定年份的行或给定年份的特定日期的行。 例如,我想获取 2012 年的数据。另外,我想获取 2013-11-05 的数据。 我可能需要使用 multiindex,但是我怎样才能像这样用 dataframe 设置 multiindex?

要制作多索引,请使用set_index()和列名列表

df = df.set_index(['year','date'])
               Time  observation1  observation2
year date                                      
2012 11-02  9:12:00     79.373668           224
     11-02  9:13:00    130.841316           477
     11-05  9:14:00     45.312814           835
2013 11-05  9:15:00    123.776946           623
     11-05  9:16:00     79.373668           224
     11-22  9:17:00    130.841316           477
     11-22  9:18:00     45.312814           835
2014 11-01  9:19:00    123.776946           623

但是要做出你需要的选择,下面的操作就足够了,不需要形成多索引

print(df[df.year.eq(2012)])
print(df[df.year.eq(2013) & df.date.eq('11-05')])
   year   date     Time  observation1  observation2
0  2012  11-02  9:12:00     79.373668           224
1  2012  11-02  9:13:00    130.841316           477
2  2012  11-05  9:14:00     45.312814           835

   year   date     Time  observation1  observation2
3  2013  11-05  9:15:00    123.776946           623
4  2013  11-05  9:16:00     79.373668           224

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM