切片多索引时间(第一级)TypeError:'

问题描述 投票:2回答:1

我有以下Panda DataFrame df和日期时间索引('日期')

df=
                   CP  Amount Location   
Date                                                              
2019-02-13        Bob    -5.0  Chicago  
2019-02-13        Bob    -5.0  Chicago  
2019-02-13     Marina   -25.0      LA  
2019-02-13        Bob   -25.0      LA  
2019-02-14    Addison     5.0  Chicago  
2019-02-14    Addison     5.0  Chicago  

如果我想查找2019年2月以后的所有值,我知道我可以这样做:

df.loc['02-2019':]

现在让我们说我使用index = ['Date','Location','CP']制作我的df MultiIndex(旋转和agging)

df=
                               Amount  
Date       Location CP                                                     
2019-02-13 Chicago  Bob         -10.0            
           LA       Marina      -25.0       
                    Bob         -25.0              
2019-02-14 Chicago  Addison     -10.0       

当我尝试做同样的df.loc ['02 -2019':]

我收到以下错误

TypeError: '<' not supported between instances of 'int' and 'slice'

我知道我可以做到

df.loc['02-13-2019':]

并获得相同的结果 - 但有没有办法在月/年上做一个类似于单个索引的时间片?如

df.loc['2019':]

要么

df.loc['02-2019':]
python pandas indexing slice
1个回答
0
投票

切片与strings一起工作的事实真的很方便。如果失败,请返回使用datetime64进行切片,在不存在时将日期和月份加1:

import pandas as pd

s = '2019'
df.loc[pd.to_datetime(s):]

#                             Amount
#Date       Location CP             
#2019-02-13 Chicago  Bob       -10.0
#           LA       Bob       -25.0
#                    Marina    -25.0
#2019-02-14 Chicago  Addison   -10.0

s = '02-2019'
df.loc[pd.to_datetime(s):]

#                             Amount
#Date       Location CP             
#2019-02-13 Chicago  Bob       -10.0
#           LA       Bob       -25.0
#                    Marina    -25.0
#2019-02-14 Chicago  Addison   -10.0
© www.soinside.com 2019 - 2024. All rights reserved.