在按其他列的条目分组后命名一列的条目

时间:2017-07-21 09:39:43

标签: python python-2.7 pandas

我有以下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保存为整数。

0 个答案:

没有答案