【发布时间】:2020-10-15 14:27:00
【问题描述】:
我已经创建了以下数据集
dataset1 = { 'srid':[1,2,3,1,5],
'custid':[11,12,43,12,34],
'orderdate':["1/2/2019","1/2/2019","2/2/2019","1/2/2019","1/2/2019"],
'Rev':[100,101,102,103,17]
}
df1 = pd.DataFrame(dataset1)
我必须将每个销售代表标记为: 优秀(他一天的总收入是平均收入的 1.5 倍或更多) 当天的所有销售代表) 好(他一天的总收入小于 1.5 倍且大于等于 1.1 乘以当天所有销售代表的平均收入) 平均(他一天的总收入小于 1.1 倍且大于等于 为当天所有销售代表平均收入的 0.9 倍) 差(他一天的总收入低于所有人平均收入的 0.9 倍) 当天的销售代表)对于“数据集 1”中存在的每个日期 输出数据集:销售代表 ID、订单日期、标记
我尝试的是:
g=df.groupby(df['orderdate'])
ans={}
for od,od_df in g:
# print(od)
ans[od]=list()
x=od_df["Rev"].mean()
s=set(od_df["srid"].tolist())
for i in s:
p=od_df[od_df["srid"]==i]["Rev"].sum()
val = p/x
if val>=1.5:
ans[od].append([i,od,"Excellent"])
elif 1.1<=val<1.5:
ans[od].append([i,od,"good"])
elif 0.9<=val<1.1:
ans[od].append([i,od,"avg"])
else:
ans[od].append([i,od,"poor"])
但是要写的内容很多,并且需要更多时间在大数据集上,我该如何进一步优化它
【问题讨论】:
-
预期输出是什么?
-
输出:销售代表ID、订单日期、标记