我有一个.csv文件,该文件有5列,其中有一个列中有提到的日期“ date_value”,我需要根据以下内容更改其他两列“ day_of_week”和“ day_of_week_name”提到的日期。例如:
A
date_key date_level date_value day_of_week day_of_week_name
2010W01 20 01.01.2010 NaN NaN
20100102 10 02.01.2010 7.0 Saturday
2010W02 20 03.01.2010 NaN NaN
20100103 10 03.01.2010 1.0 Sunday
20100104 10 04.01.2010 2.0 Monday
20100105 10 05.01.2010 3.0 Tuesday
20100106 10 06.01.2010 4.0 Wednesday
20100107 10 07.01.2010 5.0 Thursday
20100108 10 08.01.2010 6.0 Friday
20100109 10 09.01.2010 7.0 Saturday
2010W03 20 10.01.2010 NaN NaN
例如,根据 date_value 中的日期,星期日的 day_of_week 为 1 上。同样,在每周之后,还有一行,其中 day_of_week 和 day_of_week_name为空,因为它描述了您可以在 date_key 中看到的星期数。值其中带有W的值,例如-2010W03 。
我应该如何使该表填充星期数字和周名称库仑,以便在需要的任何地方用空值填充,我尝试了一下,但似乎不起作用。
range1 = [2,3,4,5,6,7,1]
days = {'2': 'Monday', '3': 'Tuesday', '4': 'Wednesday', '5': 'Thursday', '6': 'Friday', '7':
'Saturday', '1': 'Sunday'}
print(days['2'])
def change_2018(df):
for i in df.date_level:
#print(i)
if i == 10:
for k in range1:
for key, value in days.items():
#print(key, value)
df.day_of_week = k
df.day_of_week_name = value
return df
change_2018(table_2018)
我还想知道是否有任何干净的方法可以执行此操作,因为此功能也运行了很长时间。
答案 0 :(得分:0)
您应该能够将日期转换为datetime
对象。然后,您可以使用.weekday()
函数来获取工作日:
from datetime import datetime
days = {
0: "Monday",
1: "Tuesday",
2: "Wednesday",
3: "Thursday",
4: "Friday",
5: "Saturday",
6: "Sunday"
}
date = datetime.strptime("01.01.2010", "%d.%m.%Y")
weekday = date.weekday()
day_name = days.get(weekday)