gpt4 book ai didi

python - Pandas DatetimeIndex 中的第一个值是不可搜索的

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:05 25 4
gpt4 key购买 nike

我有一个简单的系列:

>>> sub_dim_metrics
date
2017-04-04 00:00:00+00:00 32.38
2017-04-03 00:00:00+00:00 246.28
2017-04-02 00:00:00+00:00 146.25
2017-04-01 00:00:00+00:00 201.98
2017-03-31 00:00:00+00:00 274.74
2017-03-30 00:00:00+00:00 257.82
2017-03-29 00:00:00+00:00 279.38
2017-03-28 00:00:00+00:00 203.53
2017-03-27 00:00:00+00:00 250.65
2017-03-26 00:00:00+00:00 180.59
2017-03-25 00:00:00+00:00 196.61
2017-03-24 00:00:00+00:00 281.04
2017-03-23 00:00:00+00:00 276.44
2017-03-22 00:00:00+00:00 227.55
2017-03-21 00:00:00+00:00 267.59
Name: area, dtype: float64
>>> sub_dim_metrics.index
DatetimeIndex(['2017-04-04', '2017-04-03', '2017-04-02', '2017-04-01',
'2017-03-31', '2017-03-30', '2017-03-29', '2017-03-28',
'2017-03-27', '2017-03-26', '2017-03-25', '2017-03-24',
'2017-03-23', '2017-03-22', '2017-03-21'],
dtype='datetime64[ns, UTC]', name=u'date', freq=None)

稍后在我的代码中,我使用以下格式检索特定日期的区域:例如,sub_dim_metrics['2017-04-02']

在检索某一天的区域之前,我首先验证请求的日期是否在系列中,如下所示:if '2017-04-02' in sub_dim_metrics.index

我的问题是 Index 中的第一个值不返回 true,而其余的值:

>>> '2017-04-02' in sub_dim_metrics.index
True
>>> '2017-04-04' in sub_dim_metrics.index
False

这是为什么?在检索相应值之前验证日期是否在我的系列中的最佳方法是什么?

最佳答案

IIUC:

当您期望 True 时,您得到的是 False:
您正在检查字符串是否在日期时间索引中。显然 pandas 对支票很松散,并试图为你做这件事。不过它弄错了,不是吗。

计划 1
做对!

pd.to_datetime('2017-04-04') in sub_dim_metrics.index

True

计划 2
我认为未分类的东西正在抛弃它。 sort_values 首先。

'2017-04-04' in sub_dim_metrics.index.sort_values()

True

设置

from io import StringIO
import pandas as pd

txt = """2017-04-04 00:00:00+00:00 32.38
2017-04-03 00:00:00+00:00 246.28
2017-04-02 00:00:00+00:00 146.25
2017-04-01 00:00:00+00:00 201.98
2017-03-31 00:00:00+00:00 274.74
2017-03-30 00:00:00+00:00 257.82
2017-03-29 00:00:00+00:00 279.38
2017-03-28 00:00:00+00:00 203.53
2017-03-27 00:00:00+00:00 250.65
2017-03-26 00:00:00+00:00 180.59
2017-03-25 00:00:00+00:00 196.61
2017-03-24 00:00:00+00:00 281.04
2017-03-23 00:00:00+00:00 276.44
2017-03-22 00:00:00+00:00 227.55
2017-03-21 00:00:00+00:00 267.59"""

sub_dim_metrics = pd.read_csv(StringIO(txt),
sep='\s{2,}', engine='python',
index_col=0, parse_dates=[0],
header=None, names=['date', 'area'],
squeeze=True)

关于python - Pandas DatetimeIndex 中的第一个值是不可搜索的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43261760/

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