【发布时间】:2017-04-13 16:05:36
【问题描述】:
我有两个数据框 df1 和 df2。
df1.index
DatetimeIndex(['2001-09-06', '2002-08-04', '2000-01-22', '2000-12-19',
'2008-02-09', '2010-07-07', '2011-06-04', '2007-03-14',
'2003-05-17', '2016-02-27',..dtype='datetime64[ns]', name=u'DateTime', length=6131, freq=None)
df2.index
DatetimeIndex(['2002-01-01 01:00:00', '2002-01-01 10:00:00',
'2002-01-01 11:00:00', '2002-01-01 12:00:00',
'2002-01-01 13:00:00', '2002-01-01 14:00:00',..dtype='datetime64[ns]', length=129273, freq=None)
即df1 的索引为天,df2 的索引为日期时间。我想在索引上执行 df1 和 df2 的内部连接,这样如果 df2 中对应于小时的日期在 df1 中可用,我们认为内部连接为真,否则为假。
我想获得两个 df11 和 df22 作为输出。 df11 将具有来自 df1 的公共日期和相应列。 df22 将具有来自 df2 的通用日期时间和相应的列。
例如df1 中的“2002-08-04”和 df2 中的“2002-08-04 01:00:00”被认为存在于两者中。
如果 df1 中的“1802-08-04”在 df2 中没有小时,则它在 df11 中不存在。
但是,如果 df2 中的“2045-08-04 01:00:00”在 df1 中没有日期,则它在 df22 中不存在。
现在我正在使用numpy in1d 和pandas normalize 函数来完成这项任务。我一直在寻找 pythonic 方法来实现这一点。
【问题讨论】:
-
你能把得到的代码贴出来吗?这会让你想要做的事情更加明显。