我试图了解尝试使用.join()
时哪个数据集或联接键引发以下错误
错误:ValueError: You are trying to merge on datetime64[ns] and int64 columns. If you wish to proceed you should use pd.concat
我知道我试图在两个数据集之间联接的日期键的格式显然存在问题,但是我不确定这是否与我如何设置索引有关数据集或数据类型转换。
主表(df
):
date_range_start = '2018-01-01'
date_range_end = '2020-12-31'
data_date_range = pd.date_range(start=date_range_start, end=date_range_end)
weekday = data_date_range.day_name()
df = pd.DataFrame({'date': data_date_range, 'weekday': weekday}).set_index('date')
主表数据类型:
types = df.dtypes
print(types)
weekday object
dtype: object
表已加入(holiday_table
):
holiday_table = pd.DataFrame(columns=['date', 'holiday_name']).set_index('date')
# CorporateHolidays(years=[2018,2019,2020]) Structure
for date, name in sorted(holidays.US(years=[2018,2019,2020]).items()):
holiday_table = holiday_table.append({'date': pd.to_datetime(date), 'holiday_name':name}, ignore_index=True)
表被联接的类型:
print(holiday_table.dtypes)
holiday_name object
date datetime64[ns]
dtype: object
加入代码:
df.join(holiday_table, on='date')