У меня довольно интересный случай.
Существует df_1
со столбцом time
на основе данных с низкой степенью детализации (2 с), например:
2018-08-31 22:59:47.980000+00:00 41.77
2018-08-31 22:59:49.979000+00:00 42.76
2018-08-31 22:59:51.979000+00:00 40.86
2018-08-31 22:59:53.979000+00:00 41.83
2018-08-31 22:59:55.979000+00:00 41.73
2018-08-31 22:59:57.979000+00:00 42.71
Также есть df_2
с метками для этих данных и time
столбцом по часам:
2018-08-31 22:00:00 0.0
2018-08-31 23:00:00 1.0
2018-09-01 00:00:00 0.0
2018-09-01 01:00:00 1.0
2018-09-01 02:00:00 0.0
Я хотел бы объединить df_1
с df_2
, чтобы время от df_1 находилось между каждыми двумя последовательными временными строками в df_2
(от одного часа до присвоения метки). Если бы у меня было два временных столбца в df_2
(например, startTime
и endTime
), я бы использовал pandasql
и его возможности:
import pandasql
sqlcode = '''
select *
from df_1
inner join df_2 on df_1.time >= df_2.startTime and df_1.time <= df_2.endTime
'''
newdf = ps.sqldf(sqlcode,locals())
Но в этом случае у меня только один столбец. Есть ли способ решить эту проблему в Pandas?