使用 Python 获取列中的周数

To get the week number in a column using Python

我试图满足这个要求,我希望在我的数据框中有一个包含周数的列,基于数据中存在的年月日。 这是下面的代码-

import pandas as pd
import numpy as np
s={'yr':[2014,2014,2014,2014,2015,2015,2015,2015],'Month':['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug'],'Days':[12,24,11,22,10,15,22,3]}
p=pd.DataFrame(data=s)

import datetime
p['week']=datetime.date(p['yr'], p['Month'], p['Days']).isocalendar().week

I am getting the below error-
TypeError: cannot convert the series to <class 'int'>

我不确定如何解决此错误,我想我也需要将月份转换为数字格式,如何才能做到这一点并获得日期中的周数?

这条线不太好,但它有效:

p['week'] = [datetime.datetime.strptime(str(p['yr'][i])+p['Month'][i]+str(p['Days'][i]), '%Y%b%d').isocalendar()[1] for i in range(len(p))]