И int, и str в порядке, вам просто нужно изменить тип float вашего столбца Day. В любом случае, это нереально, у нас нет дробных дней в датах.
date_series = pd.to_datetime(df)
даст вам серию дат и времени, которую вы затем можете добавить к исходному фрейму данных.
Код теста:
import numpy as np
import pandas as pd
data = pd.DataFrame(columns=['Year', 'Month', 'Day'])
data = data.append({'Year': 2019, 'Month': 10, 'Day': 20}, ignore_index=True)
date_series = pd.to_datetime(data)
data['Date'] = date_series
Выход data
:
Year Month Day Date
0 2019 10 20 2019-10-20
РЕДАКТИРОВАТЬ
import numpy as np
import pandas as pd
data = pd.DataFrame(columns=['Year', 'Month', 'Day', 'Gender', 'No. of Births'])
data = data.append({'Year': 2019, 'Month': 10, 'Day': 20, 'Gender': 'M', 'No. of Births': 5}, ignore_index=True)
date_prep = data.iloc[:, 0:3]
date_series = pd.to_datetime(date_prep)
data['Date'] = date_series