gpt4 book ai didi

python - 根据可申报的可变时间来确定全职和兼职同事

转载 作者:行者123 更新时间:2023-12-01 01:32:04 25 4
gpt4 key购买 nike

这更像是一个指导/为我指明正确方向的问题。

问题!

我在工作中遇到一个问题,目前正在使用非常非常很长的 Excel 公式来解决。

我基本上将一个小时变量(我们称之为 h)分配给 500 家商店

然后我宣布全职同事和兼职同事(ft 和 pt)的时间分配

我现在的公式是根据编号计算出来的。有多少 FT 可以在那里工作,在 FT 分配用完后(基本上它不能被划分/修改为整个小时数),然后它会计算 pt 同事的数量。

用数学术语来说我分配 20 个小时来存储 A

店里A FT 同事工作12 小时,PT 工作6 小时

基于这家商店A可以容纳1 FT col 1 PT,剩余时间为2小时。

我想用 python 来做这件事,并认为这将是一个很好的第一个真实项目。

到目前为止的解决方案,

我尝试的是开始充实一个函数,该函数接受 ft、pt 和 h 作为参数,并输出可以容纳的小时数 FT 和 PT 的数量。然后我想将其附加到 pandas 数据框中。然而,我已经有一段时间无法解决这个问题了..而且我不知道要在SO上搜索什么

  def (full_time, part_time,hours):
for hours in full_time:
if hours < full_time or part_time:
return full_time
elif hours >= full_time
return full_time
elif hours >= full_time ....

最佳答案

What I've tried is to start fleshing out a function that takes in the ft,pt and h as arguments and spits out the number of FT and PT the number of hours can accommodate.

我的理解是你有三个输入变量和三个输出。分配了 total_hours 的给定商店的 FT 员工可以工作 ft_hours,而 PT 员工则可以工作 pt_hours。您想要找到要分配的 FT worker 和 PT worker 的数量,以及假设没有员工半类倒的情况下的剩余数量。

def alloc_hours(
ft_hours: int,
pt_hours: int,
total_hours: int
) -> tuple:
"""Calculate hour-allocation for given store.

ft_hours: The number of hours a full-time emp. works.
pt_hours: The number of hours a part-time emp. works.
total_hours: The total hours allocated to the store.

Returns: tuple
1st element: num. of full-time workers.
2nd element: num. of part-time workers.
3rd element: remainder hours.
"""

ft_workers, remainder = divmod(total_hours, ft_hours)
pt_workers, remainder = divmod(remainder, pt_hours)
return ft_workers, pt_workers, remainder

示例:

>>> alloc_hours(12, 6, 20)
(1, 1, 2)
>>> alloc_hours(8, 6, 20)
(2, 0, 4)
>>> alloc_hours(8, 6, 24)
(3, 0, 0)

在 Pandas 中:

import pandas as pd

data = {
'ft_hours': [12, 8, 10, 8, 12, 10, 8, 8],
'pt_hours': [6, 4, 6, 6, 6, 4, 4, 6],
'total_hours': [20, 20, 24, 40, 30, 20, 10, 40]
}
data = pd.DataFrame(data)

# Pandas supports vectorization, so each of these results is a Series.
ft_workers, remainder = divmod(data['total_hours'], data['ft_hours'])
pt_workers, remainder = divmod(remainder, data['pt_hours'])

data = data.assign(
ft_workers=ft_workers,
pt_workers=pt_workers,
remainder=remainder
)

结果:

>>> data
ft_hours pt_hours total_hours ft_workers pt_workers remainder
0 12 6 20 1 1 2
1 8 4 20 2 1 0
2 10 6 24 2 0 4
3 8 6 40 5 0 0
4 12 6 30 2 1 0
5 10 4 20 2 0 0
6 8 4 10 1 0 2
7 8 6 40 5 0 0

关于python - 根据可申报的可变时间来确定全职和兼职同事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52770218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com