【发布时间】:2019-08-08 06:02:09
【问题描述】:
有一个很有趣的案例。
有df_1 和time 列基于这样的低粒度数据(2s):
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 有没有办法解决这个问题?
【问题讨论】:
-
您能否将屏幕截图作为示例数据添加到您的问题中以便我们复制?
-
您能向我们展示您的样本数据吗? (不是图片)
-
如果要计数,请按小时使用resample。
-
没问题,只是添加了值
-
更新了帖子
标签: python pandas datetime merge timedelta