如果在另一个数据框中存在一组列的匹配,如何删除Pandas数据框中的行?



我在数据框中有一组人,我需要在主数据集中没有出现的人的列表。目前我正在检查名字和姓氏

data_to_check_dataset是需要检查的输入数据,它包含许多列,但目前我只需要检查first_name,last_name

<表类> first_name last_name … tbody><<tr>0詹姆斯苹果…1爱丽丝测试……………10000保罗测试…

这就是错误所说的,所以一种方法是使用astype()将两个df的first_name和last_name类型区分为string:

data_to_check_dataset[['first_name','last_name']]=data_to_check_dataset[['first_name','last_name']].astype(str)
current_people_dataset[['first_name','last_name']]=current_people_dataset[['first_name','last_name']].astype(str)

最后将replace()链接到当前将字符串nan转换回实际nan的方法:

new_people_names = (pd.merge(data_to_check_dataset,current_people_dataset, indicator=True, how='outer',on=['first_name','last_name'])
.query('_merge=="left_only"')
.drop('_merge', axis=1)
.replace('nan',float('NaN'),regex=True))

最新更新