- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个自定义日历:
holidays_list = [...] # list of all weekends and holidays for needed time period
class MyBusinessCalendar(AbstractHolidayCalendar):
start_date = datetime(2011, 1, 1)
end_date = datetime(2017, 12, 31)
rules = [
Holiday(name='Day Off', year=d.year, month=d.month, day=d.day) for d in holidays_list
]
cal = MyBusinessCalendar()
我知道发薪日是每个月的第 5 天和第 20 天,如果这些天是休息日,则为之前的工作日。所以我拿
bus_day = CustomBusinessDay(calendar=cal)
r = pd.date_range('2011-01-01', '2017-12-31', freq=bus_day)
如果是发薪日,我想从 r
计算每一天。我怎样才能得到这个?
最佳答案
发薪日列表(美式英语paydays)你定义为:
the 5th and the 20th days of each month or the previous business days if these ones are days off
要使用假期日历以编程方式生成发薪日列表,您可以生成每月 6 日和每月 21 日的列表:
dates = [date(year, month, 6) for month in range(1, 13)] +
[date(year, month, 21) for month in range(1, 13)]
然后获取前一个工作日,即offset=-1。我会用这个:
np.busday_offset(dates, -1, roll='forward', holidays=my_holidays)
我使用 numpy.busday_offset
而不是 Pandas 的东西来进行偏移的原因是它是矢量化的并且运行速度非常快,而 Pandas busday 偏移逻辑非常慢。如果日期的数量很少,那没关系。如果需要,您仍然可以使用 Pandas 生成假期列表。
请注意,roll='forward'
是因为您希望逻辑是,如果 6 号是周末或节假日,则向前滚动到 7 号或 8 号,然后从那里抵消-1 个工作日即可获得发薪日。
关于python - 计算 Pandas 中的工资天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426499/
这是电话面试中提出的第一个问题? 员工表有 ID、姓名、薪水、部门列。给我按部门列出的最高工资。 我的答案:按部门从员工组中选择最高(薪水)、部门。 后续问题:现在,在上面的查询中,我只想获取平均工资
当我编译它时,我收到错误,操作符号有问题,行代码错误: Pay = (40 * Rate) + (( Hours - 40) * (1.5 * Rate)); 下面是我使用的完整代码。 import
我是一名优秀的程序员,十分优秀!