Python 本月的周数
pandas(python)是否提供了一种从日期序列轻松获取当前一周(1:4)的方法Python 本月的周数,python,pandas,series,Python,Pandas,Series,pandas(python)是否提供了一种从日期序列轻松获取当前一周(1:4)的方法 data = {'date': ['2014-05-01', '2014-05-01', '2014-05-02', '2014-05-02', '2014-05-02', '2014-05-02', '2014-05-03', '2014-05-03', '2014-05-04', '2014-05-04']} df = pd.DataFrame(data, columns = ['date']) df['d
data = {'date': ['2014-05-01', '2014-05-01', '2014-05-02', '2014-05-02', '2014-05-02', '2014-05-02', '2014-05-03', '2014-05-03', '2014-05-04', '2014-05-04']}
df = pd.DataFrame(data, columns = ['date'])
df['date']=pd.to_datetime(df['date'])
def week_of_month(dt):
""" Returns the week of the month for the specified date.
"""
first_day = dt.replace(day=1)
dom = dt.day
adjusted_dom = dom + first_day.weekday()
return int(ceil(adjusted_dom/7.0))
df ['week']=np.nan
for i in range(len(df)):
df ['week'][i] = week_of_month(df.date.iloc[i])
对于较短的数据集,它可以工作,但对于较大的数据集,需要大量资源问题已解决:
data = {'date_x': ['2014-05-01', '2014-05-01', '2014-05-02', '2014-05-02', '2014-05-02', '2014-05-02', '2014-05-03', '2014-05-03', '2014-05-04', '2014-05-04']}
df = pd.DataFrame(data, columns = ['date_x'])
df['date']=pd.to_datetime(df['date_x'])
df['first_day_aux']=pd.to_datetime(df['date_x'][0][:8]+'01')
df['day']=df['date'].dt.day
df['adjusted_dom']=df['day']+df['first_day_aux'].dt.dayofweek
df['week']=np.int_(np.ceil(df['adjusted_dom']/7.0))
你的意思是1:5,不是吗?是的,这就是我的意思。[链接]()在这篇文章中有答案,但只针对特定的日期。一些地区以星期天开始一周,其他地区以星期一开始。