我有一个如下所示的数据集:

hiring_mgr_id   candidate_id      candidate_name       emp_id       emp_name
    1000            1234               Joe                4321        Mike
    1000            1234               Joe                9876        Sam
    1000            1234               Joe                5674        Rob
    

我想要的是创建一个按hiring_mgr_id分组的新行,如果candidate_id不在emp_id列中,则创建一个填充emp_idemp_name的新行.

我想要的:

 hiring_mgr_id      candidatae_id      candidate_name      emp_id    emp_name
     1000                1234                Joe            4321        Mike
     1000                1234                Joe            9876        Sam
     1000                1234                Joe            5674        Rob
     1000                1234                Joe            1234        Joe

到目前为止,我所拥有的是:

new_row = [] 
for index, row  in df.iterrows():
    candidate_id= row['candidate_id']
    emp_id = row['emp_id']
    if candidate_id not in df['emp_id'].values:
       new_row.append({'hiring_mgr_id:row['hiring_mg'r_id],
       'candidate_name':row['candidate_name'],
       'emp_id':row['emp_id'],
       'emp_name': row['emp_name']
df = df.append(new_row,ignore_index = True) 

当我这样做时,我得到一个错误‘DataFrame’对象没有属性‘append’

我认为你可以使用附加与数据帧任何建议如何修复?先谢谢你了.

推荐答案

一种可能的解决方案,其基于创建具有3个第一列并复制candidate_idcandidate_name列的新数据帧的 idea .然后,合并两个数据帧并丢弃重复项:

pd.concat([
    df,
    df.iloc[:, :3].assign(emp_id = 
                          df['candidate_id'],
                          emp_name = df['candidate_name'])])
.drop_duplicates()

Python-3.x相关问答推荐

使用Pandas 阅读Excel定义的名称和单元格值(&Q;)

如何将CSV或FDF数据解析到Python词典并注入到模板PDF表单中?

是什么原因导致Pandas=2.1.4和Pandas=1.4.2之间Pandas DataFrame中从Float64到int32的连续列转换方式不同

如何使用魔杖扭曲图像

在 sum() 中将字符串转换为 int (或 float)

查找值始终为零的行 pandas

Python-Django 设置 Pandas DataFrame 的多索引不会分组/合并最后一个索引

如何使用 Selenium Python 连续单击一个按钮直到另一个元素出现?

找到在指定列的另一个分组中存在重复的行.

使用gekko python的混合整数非线性规划

如果值超出上下限(异常值处理),则将值的数据框替换为 np.nan

为列表列表中的每个列表插入 str 到 index[0] 中. Python

通过最接近的匹配合并两个不同长度的列上的两个数据框

如何将具有多个参数的函数传递给 python concurrent.futures.ProcessPoolExecutor.map()?

为什么 setattr 在绑定方法上失败

在两个数据框之间查找相等的列

如何判断一个字符串是否包含有效的 Python 代码

如何在 Python 中计算两个包含字符串的列表的 Jaccard 相似度?

try 在 Mac OS 中运行此命令pipenv install requests时出错

如何使用异步 for 循环遍历列表?