我有两个数据帧,一个包含要分发的任务(任务id、当前受让人id、进行中的天数、自上次更新以来的天数),另一个包含受让人(受让人id、当前任务量)
import pandas as pd
import numpy as np
np.random.seed(0)
tasks = pd.DataFrame()
tasks['task_id'] = np.arange(1, 101)
tasks['task_id'] = tasks['task_id'].astype('object')
tasks['assignee_id'] = np.random.randint(low=1, high=11, size=100)
tasks['assignee_id'] = tasks['assignee_id'].astype('object')
tasks['days_in_prog'] = np.random.randint(low=11, high=16, size=100)
tasks['days_after_upd'] = np.random.randint(low=6, high=11, size=100)
tasks = tasks.sort_values(['days_in_prog', 'days_after_upd'], ascending=False).reset_index(drop=True)
tasks.head(10)
输出:
task_id assignee_id days_in_prog days_after_upd
0 28 4 15 10
1 59 5 15 10
2 61 9 15 10
3 64 8 15 9
4 90 2 15 9
5 97 2 15 9
6 21 6 15 8
7 57 5 15 8
8 72 4 15 7
9 78 5 15 7
assignees = pd.DataFrame()
assignees['assignee_id'] = np.arange(1, 11)
assignees['assignee_id'] = assignees['assignee_id'].astype('object')
assignees['tasks'] = np.random.randint(low=5, high=16, size=10)
assignees = assignees.sort_values('tasks').reset_index(drop=True)
assignees
输出:
assignee_id tasks
0 4 5
1 7 5
2 2 9
3 5 9
4 10 9
5 9 11
6 3 12
7 1 13
8 6 14
9 8 15
现在,我正在寻找一种方法,在几乎没有条件的情况下,将任务平均分配给受让人:
我从合并帧和创建函数开始:
df = tasks.merge(assignees, on='assignee_id')
def new_assignee_func(row):
if row
df['new_assignee'] = df.apply(new_assignee_func, axis=1)
但我找不到正确的算法
目前没有回答
相关问题 更多 >
编程相关推荐