我的datime如下df
。
0 2019-04-09 15:40:00
1 2019-04-09 15:45:00
2 2019-04-09 15:50:00
3 2019-04-09 15:55:00
4 2019-04-09 16:00:00
5 2019-04-09 16:05:00
6 2019-04-09 16:10:00
7 2019-04-09 16:15:00
8 2019-04-09 16:20:00
9 2019-04-09 16:25:00
10 2019-04-09 16:30:00
11 2019-04-09 16:35:00
12 2019-04-09 16:40:00
13 2019-04-09 16:45:00
14 2019-04-09 16:50:00
15 2019-04-09 16:55:00
16 2019-04-09 17:00:00
17 2019-04-09 17:05:00
18 2019-04-09 17:10:00
19 2019-04-09 17:15:00
字符串
我试着找到最近的日期。
result = df.index.get_indexer([pd.to_datetime('2019-04-09 17:01:00')], method='nearest')
型
但它给出了以下错误。
match = X.index.get_indexer([dt], method='nearest')
File "/home/mark/.local/lib/python3.9/site-packages/pandas/core/indexes/base.py", line 3740, in get_indexer
return self._get_indexer_non_comparable(target, method=method, unique=True)
File "/home/mark/.local/lib/python3.9/site-packages/pandas/core/indexes/base.py", line 5990, in _get_indexer_non_comparable
raise TypeError(f"Cannot compare dtypes {self.dtype} and {other.dtype}")
TypeError: Cannot compare dtypes int64 and datetime64[ns]
型
1条答案
按热度按时间4smxwvx51#
正如BigBen所暗示的,get_indexer将其目标参数与数据框架的 index 进行比较。因此,如果时间列已经是datetime格式,那么您就忘了先将datetime列设置为index。
字符串
现在你可以得到索引器:(只是在这里复制你的台词)
型
已正确返回最近日期的索引的。
型