Я пытаюсь объединить два набора данных, но созданный фрейм данных пуст?

#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. Я обновил свой ответ. Не могли бы вы попробовать, пожалуйста?