«Более простой» подход будет использовать dt.weekday
(0 понедельник, 6 воскресенье)
df = df[df.date.dt.weekday < 5]
или
df.query('date.dt.weekday < 5', inplace=True)
Полный пример:
import pandas as pd
df = pd.DataFrame({
'date': pd.date_range(start='2019-01-01', end='2019-01-07'),
'name': [
'Robert Baratheon',
'Jon Snow',
'Daenerys Targaryen',
'Theon Greyjoy',
'Tyrion Lannister',
'Cersei Lannister',
'Sansa Stark'
]
})
df = df[df.date.dt.weekday < 5]
print(df)
Возвращает:
date name
0 2019-01-01 Robert Baratheon
1 2019-01-02 Jon Snow
2 2019-01-03 Daenerys Targaryen
3 2019-01-04 Theon Greyjoy
6 2019-01-07 Sansa Stark