from datetime import date
import pandas as pd
import numpy as np
d = pd.Series(np.random.randn(1000), index=pd.bdate_range(start='01 Jan 2018', periods=1000))
def to_bday_of_month(dt):
month_start = date(dt.year, dt.month, 1)
return np.busday_count(month_start, dt)
day_of_month = [to_bday_of_month(dt) for dt in d.index.date]
d.groupby(day_of_month).mean()
2 回答
假设您的日期在索引中(如果不使用'set_index):
见time series functionality .
我想问的问题是每个月的工作日分组 - 另一个答案似乎是将数据重新采样到最近的工作日(至少对我而言) . 此代码返回一个包含22行的groupby对象