Skip to content Skip to sidebar Skip to footer

How To Make Day Of The Week Flags From Datetime Index In Pandas

I have a dataframe df whose index is in datetime format. I would like to make 7 new binary fields/columns indicating if the date is Monday, Tuesday, Wednesday, Thursday, Friday, S

Solution 1:

If the data frame is for example:

>>>dfdate02018-01-0112018-01-0222018-01-0332018-01-0442018-01-0552018-01-0662018-01-0772018-01-0882018-01-0992018-01-10102018-01-11112018-01-12122018-01-13132018-01-14142018-01-15152018-01-16162018-01-17172018-01-18182018-01-19192018-01-20

We can use df['date'].dt.weekday to obtain a number between 0 and 6 that specifies the day of the week.

We can then use pd.get_dummies(…) [pandas-doc] to generate a "one-hot encoding":

>>>pd.concat((df,pd.get_dummies(df['date'].dt.weekday)),axis=1)date012345602018-01-01  100000012018-01-02  010000022018-01-03  001000032018-01-04  000100042018-01-05  000010052018-01-06  000001062018-01-07  000000172018-01-08  100000082018-01-09  010000092018-01-10  0010000102018-01-11  0001000112018-01-12  0000100122018-01-13  0000010132018-01-14  0000001142018-01-15  1000000152018-01-16  0100000162018-01-17  0010000172018-01-18  0001000182018-01-19  0000100192018-01-20  0000010

Here 0, 1, 2, etc. are the day-of-the-week numbers.

For day names, you can use .day_name() instead:

>>>pd.concat((df,pd.get_dummies(df['date'].dt.day_name())),axis=1)dateFridayMondaySaturdaySundayThursdayTuesdayWednesday02018-01-01       010000012018-01-02       000001022018-01-03       000000132018-01-04       000010042018-01-05       100000052018-01-06       001000062018-01-07       000100072018-01-08       010000082018-01-09       000001092018-01-10       0000001102018-01-11       0000100112018-01-12       1000000122018-01-13       0010000132018-01-14       0001000142018-01-15       0100000152018-01-16       0000010162018-01-17       0000001172018-01-18       0000100182018-01-19       1000000192018-01-20       0010000

Post a Comment for "How To Make Day Of The Week Flags From Datetime Index In Pandas"