按最近日期匹配数据透视表和数据框

时间:2018-05-03 14:53:44

标签: python pandas

我有两个数据帧。一个是包含三列的数据透视表,一个标识符,一个日期和一个值。它看起来像这样:

enter image description here

标识符是CUSIP代码。

我的其他数据框包含超过50列但与第一个数据帧共享标识符。

看起来像这样:

enter image description here

CUSIP代码作为公共标识符存在于此数据框中。

每个标识符有多个条目,它们都有不同的开始和结束日期。

我想做的是通过匹配标识符(CUSIP)并使用两者之间最接近的datetime列匹配,将我的3列数据框与我的大日期框架合并。

我尝试使用merge_asof工具,但这只有在日期排序时才有可能(鉴于我每个日期都有多个条目,这是不可能的 - 多个标识符在每个日期都有值)。

任何想法如何处理?

1 个答案:

答案 0 :(得分:0)

由于我的小型数据框始终报告primo月值和大型数据帧ultimo月值,因此对我来说最简单的方法就是将ultimo日期更改为primo日期(下个月)。

要做到这一点我用过:

df ['DATE'] = df ['DATE'] + pd.offsets.MonthBegin(1)

如果值为12-31-1989,则返回01-01-1990。从那里我可以正常合并数据帧。