Python 根据其他列值向dataframe添加新列
我有一个数据框,它有两列:DNI,Email 我还有另外一个:名字,姓氏,num 这是数据结构: 数据帧1:Python 根据其他列值向dataframe添加新列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,它有两列:DNI,Email 我还有另外一个:名字,姓氏,num 这是数据结构: 数据帧1: DNI email . 1 Name1.lastname1@domain.com . 525 Name2.lastname2@domain.com . 665 Name3.lastname3@domain.com 数据帧2: first name last name num . name2 lastname2 8658685 . name1
DNI email
. 1 Name1.lastname1@domain.com
. 525 Name2.lastname2@domain.com
. 665 Name3.lastname3@domain.com
数据帧2:
first name last name num
. name2 lastname2 8658685
. name1 lastname1 1131222
我想根据邮件将num列添加到第一个数据帧,如果电子邮件列不存在姓名和姓氏组合,我想添加“0”值,如下所示:
DNI email num
. 1 Name1.lastname1@domain.com 1131222
. 525 Name2.lastname2@domain.com 8658685
. 665 Name3.lastname3@domain.com 0
我不确定做这件事的正确方法是什么。。。我正在考虑使用for循环来实现这一点,根据一些条件向字典中添加值,但是这种逻辑对于大型数据帧来说效率很低
有没有更好的办法
谢谢从df1中提取姓名并添加为列
在姓名和姓氏上将df1与df2合并您可以按照以下步骤操作:
dataframe2[“email”]=dataframe2[“first_name”]+“+dataframe2[“last_name”]+“@domain.com”
result=dataframe1.merge(dataframe2,on='email',how='left')
result['num']=result['num'].fillna(0)
您可以编辑查询或
结果
数据框以删除生成的额外列。@RichieV该帖子非常有用!谢谢