我有以下pandas数据帧:
In [52]: df = pd.DataFrame({'orderNr':[1,2,3,4,5],'customer':['name2','name2','name1','name3','name3']})
In [53]: df
Out[53]:
customer orderNr
0 name2 1
1 name2 2
2 name1 3
3 name3 4
4 name3 5
我想将下订单的客户对orderNr进行分组,然后相应地更改orderNr值:
customer orderNr
0 name2 name2
1 name1 name1
2 name3 name3
我以为我可以这样做:
def f(group):
group.orderNr = group.name
return group
df.groupby('customer' ,as_index = False)['orderNr'].apply(f)
但这似乎不起作用。我觉得应该有一个更优雅的方式使用pandas的.map()方法。 如果我可以使用映射实现某些东西
customer_map={"name1":1,"name2":2,"name3":3}
那将是整洁的。然后我可以将orderNr保存为整数。