gpt4 book ai didi

python - 切片多索引时间(第一级)TypeError : '<' not supported between instances of 'int' and 'slice'

转载 作者:行者123 更新时间:2023-12-02 03:47:01 27 4
gpt4 key购买 nike

我有以下带有日期时间索引(“日期”)的 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(旋转和聚合)

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':]

最佳答案

切片与字符串一起使用这一事实确实很方便。如果失败,请返回使用 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

关于python - 切片多索引时间(第一级)TypeError : '<' not supported between instances of 'int' and 'slice' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54728241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com