根据Python中的多个列添加星期几列

时间:2019-10-30 23:13:09

标签: python pandas

如何根据day_of_weekdf1year列(星期几,例如1 =星期一,2 =星期二)添加到monthday值如下所示:

    year month day  A       B       C   D       day_of_week
0   2019    1   1   26.2    20.2    0.0 32.4        2
1   2019    1   2   22.9    20.3    0.0 10.0        3
2   2019    1   3   24.8    18.4    0.0 28.8        4
3   2019    1   4   26.6    18.3    0.0 33.5        5
4   2019    1   5   28.3    20.9    0.0 33.4        6

2 个答案:

答案 0 :(得分:0)

使用pd.to_datetime.dt.dayofweek属性以及加1

df['day_of_week'] = pd.to_datetime(df[['year', 'month', 'day']], 
                                   errors='coerce').dt.dayofweek + 1

Out[410]:
   year  month  day     A     B    C     D  day_of_week
0  2019      1    1  26.2  20.2  0.0  32.4            2
1  2019      1    2  22.9  20.3  0.0  10.0            3
2  2019      1    3  24.8  18.4  0.0  28.8            4
3  2019      1    4  26.6  18.3  0.0  33.5            5
4  2019      1    5  28.3  20.9  0.0  33.4            6

答案 1 :(得分:0)

如果您还想要日期名称,则可以使用calendar

import datetime
import calendar

def findDay(date):
    day_number = datetime.datetime.strptime(date, '%d %m %Y').weekday() + 1
    day_name = calendar.day_name[day_number-1]
    return (day_number, day_name)

您可以使用str列中的类似date = f'{day} {month} {year}'的格式生成year, month, day格式的日期。

然后您要做的就是在新日期列上应用上述功能。该函数将返回一个元组,其中包含星期几以及日期名称。