【发布时间】:2020-11-19 10:08:22
【问题描述】:
所以我试图找到一种矢量化的方法来做到这一点,比如说我有一个数据框 DF1,其中包含一个时间戳列,其中有很多时间戳按递增顺序排列。我还有一个带有目标时间的列表,我想用它来查找 DF1 中包含与该目标时间最近的时间戳的行或该行的索引。我有一个使用 iterrows 的解决方案,但我想知道是否有不使用 iterrows 的方法,因为这可能需要很长时间。
数据框中的行数总是大于目标时间值列表。 如果目标时间介于两个时间戳之间,则始终选择最小的时间戳。
#Dataframe with timestamp
In [1]: df = pd.DataFrame([100, 150, 155, 180,185, 200], columns=['TimeStamp'])
#List of target times
targetTimes = [120, 130, 180, 187]
答案应该是:
#A list of indices
[0, 1, 3, 4]
#Or something like this
Out[1]:
TimeStamp
0 100
1 150
2 180
3 185
【问题讨论】:
标签: python python-3.x pandas dataframe vectorization