首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pandas中的多索引(时间序列)切片错误

pandas中的多索引(时间序列)切片错误
EN

Stack Overflow用户
提问于 2018-03-02 16:16:23
回答 1查看 79关注 0票数 1

我有下面的数据框架。日期/时间是多索引索引。当我做这段代码时,

代码语言:javascript
复制
<code>
idx = pd.IndexSlice 
print(df_per_wday_temp.loc[idx[:,datetime.time(4, 0, 0): datetime.time(7, 0, 0)]])" 

但我得到了错误'MultiIndex切片要求索引是完全词法排序的元组len (2),词法排序深度(1)‘。这可能是索引切片中的错误,但我不知道为什么会发生这种情况。有谁能解决这个问题吗?

代码语言:javascript
复制
                      a          b
date       time                     
2018-01-26 19:00:00  25.08     -7.85
           19:15:00  24.86     -7.81
           19:30:00  24.67     -8.24
           19:45:00    NaN     -9.32
           20:00:00    NaN     -8.29
           20:15:00    NaN     -8.58
           20:30:00    NaN     -9.48
           20:45:00    NaN     -8.73
           21:00:00    NaN     -8.60
           21:15:00    NaN     -8.70
           21:30:00    NaN     -8.53
           21:45:00    NaN     -8.90
           22:00:00    NaN     -8.55
           22:15:00    NaN     -8.48
           22:30:00    NaN     -9.90
           22:45:00    NaN     -9.70
           23:00:00    NaN     -8.98
           23:15:00    NaN     -9.17
           23:30:00    NaN     -9.07
           23:45:00    NaN     -9.45
           00:00:00    NaN     -9.64
           00:15:00    NaN    -10.08
           00:30:00    NaN     -8.87
           00:45:00    NaN     -9.91
           01:00:00    NaN     -9.91
           01:15:00    NaN     -9.93
           01:30:00    NaN     -9.55
           01:45:00    NaN     -9.51
           02:00:00    NaN     -9.75
           02:15:00    NaN     -9.44
...                    ...       ...
           03:45:00    NaN     -9.28
           04:00:00    NaN     -9.96
           04:15:00    NaN    -10.19
           04:30:00    NaN    -10.20
           04:45:00    NaN     -9.85
           05:00:00    NaN    -10.33
           05:15:00    NaN    -10.18
           05:30:00    NaN    -10.81
           05:45:00    NaN    -10.51
           06:00:00    NaN    -10.41
           06:15:00    NaN    -10.49
           06:30:00    NaN    -10.13
           06:45:00    NaN    -10.36
           07:00:00    NaN    -10.71
           07:15:00    NaN    -12.11
           07:30:00    NaN    -10.76
           07:45:00    NaN    -10.76
           08:00:00    NaN    -11.63
           08:15:00    NaN    -11.18
           08:30:00    NaN    -10.49
           08:45:00    NaN    -11.18
           09:00:00    NaN    -10.67
           09:15:00    NaN    -10.60
           09:30:00    NaN    -10.36
           09:45:00    NaN     -9.39
           10:00:00    NaN     -9.77
           10:15:00    NaN     -9.54
           10:30:00    NaN     -8.99
           10:45:00    NaN     -9.01
           11:00:00    NaN    -10.01

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-02 17:11:17

如果不能对索引进行排序,则需要创建布尔掩码并按boolean indexing过滤

代码语言:javascript
复制
from datetime import time
mask = df1.index.get_level_values(1).to_series().between(time(4, 0, 0), time(7, 0, 0)).values
df = df1[mask]
print (df)
                      a      b
date       time               
2018-01-26 04:00:00 NaN  -9.96
           04:15:00 NaN -10.19
           04:30:00 NaN -10.20
           04:45:00 NaN  -9.85
           05:00:00 NaN -10.33
           05:15:00 NaN -10.18
           05:30:00 NaN -10.81
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49065153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档