Попробуйте .to_datetime
и аксессор dt
:
import pandas as pd
data = pd.DataFrame({'year': [2018, 2018, 2018], 'month': [12, 12, 12], 'day': [1, 2, 3]})
data['weekday'] = pd.to_datetime(data[['year', 'month', 'day']]).dt.weekday
print(data)
Предоставление:
year month day weekday
0 2018 12 1 5
1 2018 12 2 6
2 2018 12 3 0
Обратите внимание, что день недели индексируется нулем.