#python #pandas #merge #dataset
Вопрос:
Я пытаюсь объединить свой набор данных новостей с набором данных о ценах акций по дате. Когда я объединяю их, код работает, но возвращаемый фрейм данных пуст.
Это мой код:
ddata['Date'] = ddata['Date'].astype(str)
cdata['Date'] = cdata['Date'].astype(str)
mdata = pd.merge(ddata, cdata, on ='Date')
Это то, что возвращается:
Образец моего набора данных новостей:
Образец моего набора данных Samp;P 500:
Спасибо вам за помощь 🙂
Комментарии:
1. преобразуйте обе даты в дату-время или в один и тот же формат, а затем объедините
2. Как бы я это сделал?
Ответ №1:
Вы должны преобразовать столбец Date
ваших кадров данных в datetime:
cdata['Date'] = pd.to_datetime(cdata['Date'])
ddata['Date'] = pd.to_datetime(ddata['Date'])
mdata = pd.merge(ddata, cdata, on ='Date')
Я думаю, что лучше сравнивать datetime64
, а object
не (только мое личное мнение)
Комментарии:
1. Привет, когда я пытаюсь запустить ваш код, я получаю ошибку ValueError: вы пытаетесь объединить столбцы object и datetime64[ns]. Если вы хотите продолжить, вам следует использовать pd.concat. Есть какие-нибудь идеи?
2. @пользователь16561849. Я обновил свой ответ. Не могли бы вы попробовать, пожалуйста?