gpt4 book ai didi

python - 在DateTime对象中查找日期的索引python

转载 作者:行者123 更新时间:2023-12-01 09:28:49 25 4
gpt4 key购买 nike

我有一个列表,其中包含我使用以下方法创建的日期:

dates_list = pd.date_range(startdate, num_of_periods, freq = 'MS')

^将日期范围存储在dates_list

如果我执行 print(dates_list),这将正确返回我的每月日期列表。

我想做的是寻找给定范围内特定日期的索引号。我尝试过:

dates_list.index(call_date)

^^其中 call_date 是我尝试查找索引号的日期

我收到一条错误消息,内容如下:

TypeError: 'DatetimeIndex' object is not callable

如果我在更简单的列表上尝试相同的命令,即: simple_list = ['奶酪', '香蕉', '蘑菇', '苹果' ...]simple_list.index('banana') 它返回 1

如何从日期列表中获取索引值?有什么我必须做的不同的事情吗?

如有任何反馈,我们将不胜感激。谢谢。

最佳答案

您有一个 DatetimeIndex 对象,而不是列表。您可以通过打印 type(dates_list) 来确认这一点。 DatetimeIndex 对象没有 index 方法。

您可以按如下方式手动检索索引:

dates_list = pd.date_range(start=pd.Timestamp('now').normalize(), periods=10, freq='D')

print(dates_list)

# DatetimeIndex(['2018-05-02', '2018-05-03', '2018-05-04', '2018-05-05',
# '2018-05-06', '2018-05-07', '2018-05-08', '2018-05-09',
# '2018-05-10', '2018-05-11'],
# dtype='datetime64[ns]', freq='D')

res = (dates_list == pd.Timestamp('2018-05-04')).argmax()

# 2

或者,您可以使用生成器。此方法仅适用于您认为所需日期接近 DatetimeIndex 开头的较大范围。

x = pd.Timestamp('2018-05-04')
res = next((i for i, j in enumerate(dates_list) if j == x), None)

关于python - 在DateTime对象中查找日期的索引python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50133876/

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