Кто-нибудь знает, почему присоединение к datetime64[ns]
не работает, пока оно работает, если эти же столбцы заданы как индексы?Это действительно странно и похоже на ошибку или есть какое-то объяснение?
df1 = pd.DataFrame({
"a": [1,2,3],
"t": pd.to_datetime([1556979766, 1556979767, 1556979768], unit="s")
})
df2 = pd.DataFrame({
"b": [5,3,3],
"t": pd.to_datetime([1556979766, 1556979767, 1556979768], unit="s")
})
df1.join(df2, on="t")
>> ValueError: You are trying to merge on datetime64[ns] and int64 columns. If you wish to proceed you should use pd.concat
Пока это работает:
df1.index = df1.t
df2.index = df2.t
df1.join(df2, lsuffix="1")
dtypes
идентичны
list(df1.dtypes) == list(df2.dtypes)
>> True
(версия для панд: '0.24.2'
)