合并带有时间戳和间隔的数据帧

合并带有时间戳和间隔的数据帧,第1张

合并带有时间戳和间隔的数据帧

创建

IntervalIndex
IntervalIndex.from_arrays
第一:

s = pd.IntervalIndex.from_arrays(df2['start'], df2['stop'], 'both')print (s)IntervalIndex([[2016-08-31 08:09:00, 2016-08-31 08:12:00],     [2016-08-31 08:13:00, 2016-08-31 08:20:00],    [2016-08-31 08:20:00, 2016-08-31 08:45:00]],   closed='both',   dtype='interval[datetime64[ns]]')

然后

set_index
通过新
IntervalIndex
设置将新列按以下条件创建数组
values

df1['C'] = df2.set_index(s).loc[df1.index, 'C'].valuesprint (df1)  A  C2016-08-31 08:09:00   1.0  a2016-08-31 08:11:00   7.0  a2016-08-31 08:14:00  90.0  b

编辑:

s = pd.IntervalIndex.from_arrays(df2['start'].astype(np.int64), df2['stop'].astype(np.int64), 'both')print (s)IntervalIndex([[1472630940000000000, 1472631120000000000],     [1472631180000000000, 1472631600000000000],     [1472631600000000000, 1472633100000000000]],   closed='both',   dtype='interval[int64]')df1['C'] = df2.set_index(s).loc[df1.index.astype(np.int64), 'C'].valuesprint (df1)  A  C2016-08-31 08:09:00   1.0  a2016-08-31 08:11:00   7.0  a2016-08-31 08:14:00  90.0  b


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5668399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存