Python 按另一列的条目分组后命名一列的条目
我有以下数据帧:Python 按另一列的条目分组后命名一列的条目,python,python-2.7,pandas,Python,Python 2.7,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
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保存为整数。为什么不干脆
df['orderNr']=df.customer
?当然!看到这一点,我也意识到我想做的是不明智的,因为我将在两列中得到完全相同的信息。非常感谢。