我试图在我的熊猫数据框中创建一个动态日期时间函数,以识别“日期”列中的值,并让我知道“周”列中的相应星期几。
我在将下面创建的功能合并到Pandas数据框中时遇到困难:
def week(rawdate):
dt = datetime.strptime(rawdate, '%m/%d/%Y')
currentweekstart = dt - timedelta(days = dt.weekday())
currentweekstart2 = currentweekstart.strftime('%m/%d/%Y')
currentweekmonth = currentweekstart.strftime('%m')
currentweekfinish = currentweekstart + timedelta(days = 6)
currentweekfinish2 = currentweekfinish.strftime('%m/%d/%Y')
currentweekfinishmonth = currentweekfinish.strftime('%m')
if dt.strftime('%m') == currentweekmonth:
currentweekstart2
return currentweekstart2
else: #start date is the 1st date of new month week
nextweekstart = datetime.strptime(currentweekfinish.strftime('%m/1/%Y'), '%m/%d/%Y')
nextweekstart2 = nextweekstart.strftime('%m/%d/%Y')
return nextweekstart2
任何帮助,将不胜感激!
编辑:使用修订后的变量更新功能
假设函数的逻辑week(rawdate)
正确,则可以使用series.apply
函数将函数应用于序列(pandas列)中的所有值,这将返回一个新的series,您可以将其分配给新的pandas列。
例子 -
df['Week'] = df['Date'].apply(week)
我可以在函数中看到一些问题-
weekstart
未定义(在else部分中返回)。
在if
您正在做的部分中--currentweekstart2
禁止操作
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句