3 回答
TA贡献1868条经验 获得超4个赞
尝试apply:
def f(x):
if x >= 7:
SID = 3
elif x >= 6 and x<7:
SID = 2
else:
SID = 1
return SID
df['SID']=df['order_total'].apply(f)
TA贡献1806条经验 获得超5个赞
使用 groupby 和 transform 来获取包含每个 consumer_id 的平均订单总数的系列,然后将函数应用于该系列以创建结果系列。
def sid_assign(x):
if x >= 7:
return 3
if x >= 6 | x < 7:
return 2
else:
return 1
id_sums = df.groupby('consumer_id').order_total.transform('mean')
df['SID'] = id_sums.apply(sid_assign)
print(df)
consumer_id order_total SID
0 1 5 1
1 2 6 2
2 3 7 3
3 1 5 1
添加回答
举报
