根据python中的多个列添加星期几列
如何根据根据python中的多个列添加星期几列,python,pandas,Python,Pandas,如何根据年,月,日值,将周中的天列(周中的天,例如1=Mon,2=Tue)添加到df1,如下所示: 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
年
,月
,日
值,将周中的天
列(周中的天,例如1=Mon,2=Tue)添加到df1
,如下所示:
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
使用
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
如果您还需要日期名称,可以使用
日历
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)
您可以从year,month,day
列中使用类似于date=f'{day}{month}{year}'
的内容,以str
格式生成日期
然后,您所要做的就是在新的日期列上应用上面的函数。该函数将返回一个元组,其中包含一周的天数和日期名称
datetime.datetime.today().weekday()
应该完成这项工作。但周一是0,周日是6。所以,您需要添加一个,为什么它在解析时返回语法错误:意外的EOF
?这是什么意思?@nilsinelabore:youryear
、month
、day
中的某些值无效。我添加了强制以忽略它们。请参阅我的最新答案。