import pandas as pd
import decimal
def count_employees(employees: pd.DataFrame) -> pd.DataFrame:
D = decimal.Decimal
decimal.getcontext().rounding = "ROUND_HALF_UP" # 设置舍入方式为四舍五入
emp_table = employees[~employees["reports_to"].isnull()]
re_table = employees[["employee_id","name"]].merge(emp_table[["reports_to","age"]],left_on="employee_id",right_on="reports_to",how="left")
re_table = re_table.dropna(subset=["reports_to"])
return re_table.groupby(["employee_id","name"]).agg(
reports_count=("reports_to","count"),
average_age = ("age",lambda x:D(x.mean()).quantize(D("0")))).reset_index() # 对应pandas四舍五入问题,主要看这个
01-06
400
08-07
1万+