pandas 在Python中从列创建新行

6rqinv9w  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(114)

我有一个数据集,看起来像这样:

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'
我想你可以使用附加与 Dataframe 任何建议如何修复?提前感谢你。

dgiusagp

dgiusagp1#

一个可能的解决方案,它是基于这样的想法:创建一个新的具有前3列的嵌套框架,并复制candidate_idcandidate_name列。然后,两个嵌套框架连接起来,删除重复的列:

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

字符串

相关问题