如何使用 pandas 加入 datetimeindex?

How can i make a join on datetimeindex using pandas?

为什么 pandas 不让我加入 datetimeindex? 这是一个小代码块来产生我遇到的问题。

dti = pd.date_range('2019-01-01','2020-01-01')
df1 = pd.DataFrame({'date':dti})
df2 = pd.DataFrame({'date':dti})
df1.join(df2,on="date")

我尝试先将列转换为日期时间对象,但仍然没有成功。

dti = pd.date_range('2019-01-01','2020-01-01')
dto = pd.to_datetime(dti)
df1 = pd.DataFrame({'date':dto})
df2 = pd.DataFrame({'date':dto})
df1.join(df2,on="date")

它们都失败了,但有以下异常。

ValueError: You are trying to merge on datetime64[ns] and int64 columns. If you wish to proceed you should use pd.concat

这是一个已知 Pandas 问题:Bug 。在修复之前,不会 merge 完成工作:

import pandas as pd

dti = pd.date_range('2019-01-01','2020-01-01')
dto = pd.to_datetime(dti)
df1 = pd.DataFrame({'date':dto})
df2 = pd.DataFrame({'date':dto})

df1.merge(df2,on="date", how='inner')

我认为这是 Pandas 中的错误。 join 以某种方式表现得好像您的日期之一不是日期数据类型。