【发布时间】:2018-10-14 13:32:01
【问题描述】:
我发现了这个不错的函数pandas.merge_asof。
来自文档
pandas.merge_asof(left, right, on=None, left_on=None, right_on=None)
Parameters:
left : DataFrame
right : DataFrame
on : label
Field name to join on. Must be found in both DataFrames.
The data MUST be ordered.
Furthermore this must be a numeric column,such as datetimelike, integer, or float.
On or left_on/right_on must be given.
它按预期工作。
但是,我的合并数据框只保留了 on 列中的原始列 left。我需要保留它们,所以要有
mydf=pandas.merge_asof(left, right, on='Time')
和mydf 包含来自left 和right 的Time
示例数据:
a=pd.DataFrame(data=pd.date_range('20100201', periods=100, freq='6h3min'),columns=['Time'])
b=pd.DataFrame(data=
pd.date_range('20100201', periods=24, freq='1h'),columns=['Time'])
b['val']=range(b.shape[0])
out=pd.merge_asof(a,b,on='Time',direction='forward',tolerance=pd.Timedelta('30min'))
【问题讨论】:
-
你能添加一些数据样本吗?
-
我在上面……等等