我有一个pandas dataframe,希望根据groupby第一行和最后一行的条件创建一个新列,其中包含值。所需条件如下:
经理对经理=受雇为经理
emp转经理=晋升为经理
emp到emp=受雇为emp
经理到环境管理计划=状态更改
date email level
01/01/2000 john@abc.com mgr
05/06/2000 john@abc.com mgr
10/01/2001 john@abc.com mgr
14/02/2000 kimdo@abc.com emp
19/10/2001 kimdo@abc.com mgr
12/05/2000 waint@abc.com emp
08/08/2000 waint@abc.com emp
14/04/2001 waint@abc.com emp
22/05/2000 neds@abc.com mgr
08/11/2000 neds@abc.com mgr
12/06/2001 neds@abc.com emp
希望实现以下结果
date email level status
01/01/2000 john@abc.com mgr hired as mgr
10/01/2001 john@abc.com mgr hired as mgr
14/02/2000 kimdo@abc.com emp promoted to mgr
19/10/2001 kimdo@abc.com mgr promoted to mgr
12/05/2000 waint@abc.com emp hired as emp
14/04/2001 waint@abc.com emp hired as emp
22/05/2000 neds@abc.com mgr status change
12/06/2001 neds@abc.com emp status change
到目前为止,我能够基于groupyby选择dataframe的第一行和最后一行,但不完全确定如何应用这些条件来获取新的“status”列。感谢任何形式的帮助,谢谢
df2 = df.groupby('email', as_index=False).nth([0,-1])
尝试创建一个}来映射状态
map
{您可以尝试:
最后:
df2
的输出:相关问题 更多 >
编程相关推荐