Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Num day to Name day with Pandas

If I use this funtion pd.DatetimeIndex(dfTrain['datetime']).weekday I get number of the day, but I don't find any function which give the name of de day... So I need to convert 0 to Monday, 1 to Tuestday and so on.

Here is an example of my dataframe:

            datetime    season holiday workingday weather   temp    atemp   humidity    windspeed   count
    0   2011-01-01 00:00:00 1   0   0   1   9.84    14.395  81  0.0000  16
    1   2011-01-01 01:00:00 1   0   0   1   9.02    13.635  80  0.0000  40
    2   2011-01-01 02:00:00 1   0   0   1   9.02    13.635  80  0.0000  32
    3   2011-01-01 03:00:00 1   0   0   1   9.84    14.395  75  0.0000  13
    4   2011-01-01 04:00:00 1   0   0   1   9.84    14.395  75  0.0000  1
    5   2011-01-01 05:00:00 1   0   0   2   9.84    12.880  75  6.0032  1
    6   2011-01-01 06:00:00 1   0   0   1   9.02    13.635  80  0.0000  2
    7   2011-01-01 07:00:00 1   0   0   1   8.20    12.880  86  0.0000  3
    8   2011-01-01 08:00:00 1   0   0   1   9.84    14.395  75  0.0000  8
    9   2011-01-01 09:00:00 1   0   0   1   13.12   17.425  76  0.0000  14

Another question more, which is the difference between pandas.DatetimeIndex.dayofweekand pandas.DatetimeIndex.weekday?

like image 201
Yari Avatar asked Mar 17 '15 10:03

Yari


People also ask

How do you get the day name in Pandas?

day_name() function is used to get the day names of the DateTimeIndex with specified locale. Locale determining the language in which to return the day name. Default is English locale. Index of day names.

How do I convert datetime to days in Python?

Python datetime. date(year, month, day) :MINYEAR <= year <= MAXYEAR. 1 <= month <= 12. 1 <= day <= number of days in the given month and year.


2 Answers

Using dt.weekday_name is deprecated since pandas 0.23.0, instead, use dt.day_name():

df.datetime.dt.day_name()

0    Saturday
1    Saturday
2    Saturday
3    Saturday
4    Saturday
5    Saturday
6    Saturday
7    Saturday
8    Saturday
9    Saturday
Name: datetime, dtype: object
like image 102
user3483203 Avatar answered Oct 28 '22 11:10

user3483203


Last versions you can use dt.day_name:

df['weekday'] = df['datetime'].dt.day_name
print df
             datetime  season  holiday  workingday  weather   temp   atemp  \
0 2011-01-01 00:00:00       1        0           0        1   9.84  14.395   
1 2011-01-01 01:00:00       1        0           0        1   9.02  13.635   
2 2011-01-01 02:00:00       1        0           0        1   9.02  13.635   
3 2011-01-01 03:00:00       1        0           0        1   9.84  14.395   
4 2011-01-01 04:00:00       1        0           0        1   9.84  14.395   
5 2011-01-01 05:00:00       1        0           0        2   9.84  12.880   
6 2011-01-01 06:00:00       1        0           0        1   9.02  13.635   
7 2011-01-01 07:00:00       1        0           0        1   8.20  12.880   
8 2011-01-01 08:00:00       1        0           0        1   9.84  14.395   
9 2011-01-01 09:00:00       1        0           0        1  13.12  17.425   

   humidity  windspeed  count   weekday  
0        81     0.0000     16  Saturday  
1        80     0.0000     40  Saturday  
2        80     0.0000     32  Saturday  
3        75     0.0000     13  Saturday  
4        75     0.0000      1  Saturday  
5        75     6.0032      1  Saturday  
6        80     0.0000      2  Saturday  
7        86     0.0000      3  Saturday  
8        75     0.0000      8  Saturday  
9        76     0.0000     14  Saturday  
like image 20
jezrael Avatar answered Oct 28 '22 10:10

jezrael