我有一个员工历史记录的数据集,其中包含有关工作、经理等的信息.我试图查看的是,经理是否在他们不在的情况下接替了另一位经理.如果发生这种情况,让现任经理在他们的名字旁边加一个(Sub).

这是我得到的输出:

Emp_ID    Job_Title      Manager_Pos    Manager Name     MGR_ID 
   1        Sales            627         John Doe           12
   1        Sales            627         John Doe           12
   1        Sales            627         David Stern        4
   2        Tech             324         Mark Smith         7
   2        Tech             324         Henry Ford         13
   2        Tech             324         Henry Ford         13

这就是我想要的输出:

Emp_ID    Job_Title     Manager_pos     Manager Name      Mgr_ID
  1        Sales            627           John Doe          12
  1        Sales            627           John Doe          12
  1        Sales            627           David Stern(Sub)  4  
  2        Tech             324           Mark Smith        7 
  2        Tech             324           Henry Ford(Sub)   13 
  2        Tech             324           Henry Ford(Sub)   13

我曾try 使用:

`np.where((df['Manager_pos].head(1) == df['Manager_pos') & (df['Manager Name'].head(1) != df['Manager Name'].tail(1)), df['Manager Name'] + 'Sub', df['Manager Name')

这段代码最后抛出了一个错误.有什么建议吗?

推荐答案

假设您想要在经理自组中的第一个人以来发生更改时附加'(sub)',使用groupby.transform标识第一个名字,然后使用boolean indexing:

m = (df.groupby(['Emp_ID', 'Manager_pos']) # for each group
     ['Manager Name'].transform('first')   # get first name
     .ne(df['Manager Name'])               # check if current row is different
    )

df.loc[m, 'Manager Name'] += '(sub)'

输出:

   Emp_ID Job_Title  Manager_pos      Manager Name  Mgr_ID
0       1     Sales          627          John Doe      12
1       1     Sales          627          John Doe      12
2       1     Sales          627  David Stern(sub)       4
3       2      Tech          324        Mark Smith       7
4       2      Tech          324   Henry Ford(sub)      13
5       2      Tech          324   Henry Ford(sub)      13

Python相关问答推荐

如何记录脚本输出

在Python中管理打开对话框

我们可以为Flask模型中的id字段主键设置默认uuid吗

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

从spaCy的句子中提取日期

海上重叠直方图

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

Maya Python脚本将纹理应用于所有对象,而不是选定对象

polars:有效的方法来应用函数过滤列的字符串

你能把函数的返回类型用作其他地方的类型吗?'

多个布尔条件的`jax.lax.cond`等效项

GEKKO中若干参数的线性插值动态优化

如何定义一个将类型与接收该类型的参数的可调用进行映射的字典?

在Pandas 中,有没有办法让元组作为索引运行得很好?

排除NRRD文件中的多切片卷加载问题

如何判断特定的OPC UA node 是否已经存在Asyncua?

更新-如何与一个我无法使用python获得的按钮进行交互-Selify?