[英]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.