我有以下带有日期时间索引(“日期”)的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=
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':]
答案 0 :(得分:0)
切片与strings
一起使用的事实确实很方便。如果失败,请返回使用datetime64
进行切片,如果不存在则将其添加为1和2:
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