DatetimeIndex.get_loc 已弃用

DatetimeIndex.get_loc is deprecated

我用 yfinance 0.1.70 更新了 Pandas 到 1.4.0。以前,我不得不继续使用 Pandas 1.3.5,因为 Pandas 和 yfinance 不能很好地协同工作。这些最新版本的 Pandas 和 yfinance 现在可以一起使用,但是 Pandas 现在给了我这个警告:

Future Warning: Passing method to DatetimeIndex.get_loc is deprecated... Use index.get_indexer([item], method=...) instead

作为新手,我遇到了很多麻烦 Python 让原始 get_loc 语句起作用的人:

last_week = format((df.index[df.index.get_loc(last_week, method='nearest')]).strftime('%Y-%m-%d'))

此语句允许我从数据框中获取一个日期,我可以进一步使用它来确定与该日期关联的值:

week_value = df.loc[last_week, ans]

说实话,我不敢尝试更改此声明以符合新的和改进的 get_indexer 功能。有人可以帮我吗?

应该很简单。只需将 get_loc(XXX, ...) 更改为 get_indexer([XXX], ...)[0]:

last_week = format((df.index[df.index.get_indexer([last_week], method='nearest')[0]]).strftime('%Y-%m-%d'))