Use calendar.day_name
with categorical data:
from calendar import day_name
df['Date'] = pd.Categorical(df['Date'], categories=day_name, ordered=True)
df = df.sort_values('Date')
print(df)
Date Transactions
1 Monday 114.000000
5 Tuesday 107.826087
6 Wednesday 105.608696
4 Thursday 118.217391
0 Friday 140.652174
2 Saturday 208.826087
3 Sunday 140.565217
If in your culture Monday is not considered the first day of the week, you can rotate your days of the week by n days. For example:
from collections import deque
days = deque(day_name)
days.rotate(1)
print(days)
deque(['Sunday', 'Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday'])
Then feed categories=days
as an argument to pd.Categorical
.