如何使用Pandas识别两个DataFrame中各自独有的等价编码值
实现代码
首先修正你初始代码里的参数错误(字符串类型字段不能指定dtype=float,会报错),完整可运行代码如下:
import pandas as pd # 构造第一个DataFrame lst1 = [['AAA1', 'reacher', "doctor"], ['ZZZ2', 'pete', "nurse"], ['SSS3', 'wilson', "prof"], ] df1 = pd.DataFrame(lst1, columns =['id', 'name', 'job']) # 构造第二个DataFrame lst2 = [['AAA1', 'reacher', "doctor"], ['MOIU8', 'koko', "nurse"], ['HYA1', 'andray', "prof"], ] df2 = pd.DataFrame(lst2, columns =['pk', 'name', 'job']) # 方式1:保留DataFrame关联逻辑,适合需要同步提取对应行其他字段的场景 ## 需求1:仅在第一个DataFrame中存在的code only_df1_code = df1[~df1['id'].isin(df2['pk'])]['id'].tolist() print("仅在第一个表存在的code:", only_df1_code) ## 需求2:仅在第二个DataFrame中存在的code only_df2_code = df2[~df2['pk'].isin(df1['id'])]['pk'].tolist() print("仅在第二个表存在的code:", only_df2_code) # 方式2:集合运算,仅需获取code值时更简洁 set_df1 = set(df1['id']) set_df2 = set(df2['pk']) print("仅在第一个表存在的code:", set_df1 - set_df2) print("仅在第二个表存在的code:", set_df2 - set_df1)
运行结果
仅在第一个表存在的code: ['ZZZ2', 'SSS3'] 仅在第二个表存在的code: ['MOIU8', 'HYA1']
内容的提问来源于stack exchange,提问作者alain P
相关产品推荐
相关产品推荐

