您当前的位置: 首页 >  Python
  • 0浏览

    0关注

    2393博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)

一个处女座的程序猿 发布时间:2021-12-31 19:06:16 ,浏览量:0

Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)

目录

利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)

输出结果

实现代码

利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果
parallel_match_res: 
     col01  col02
11   12.0    NaN
12   13.0    NaN
13   14.0    NaN
14    NaN   15.0
15    NaN   16.0
16    NaN   17.0
cross_match_res01: [nan, nan, nan, 15.0, 16.0, 17.0]
cross_match_res02: [nan, nan, nan, nan, nan, nan, 15.0, 16.0, 17.0, 12.0, 13.0, 14.0]
only_list_prod: 6 [12.0, 13.0, 14.0, nan, nan, nan]
only_list_dev: 6 [nan, nan, nan, 15.0, 16.0, 17.0]

实现代码
  • (1)、两列平行匹配求差集
  • (2)、两列交叉匹配求差集 T1、集合交集运算符实现 T2、for循环判断实现
# Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)

import pandas as pd


data_path = 'data/demo_data_find_difference.xls'
df = pd.read_excel(data_path)



# 求差集
# (1)、两列平行匹配求差集
parallel_match_res = df[df["col01"] != df["col02"]]
print('parallel_match_res: \n',parallel_match_res)


# (2)、两列交叉匹配求差集
list_prod = df["col01"].tolist()
list_dev = df["col02"].tolist()

# T1、集合交集运算符实现
cross_match_res01 = list(set(list_dev).difference(set(list_prod)))
cross_match_res02 = list(set(list_prod)^set(list_dev))
print('cross_match_res01:',sorted(cross_match_res01))
print('cross_match_res02:',cross_match_res02)

# T2、for循环判断实现
only_list_prod = [x for x in list_prod if x not in list_dev]  #在list1列表中而不在list2列表中
only_list_dev = [y for y in list_dev if y not in list_prod]   #在list2列表中而不在list1列表中
print('only_list_prod:',len(only_list_prod), sorted(only_list_prod))
print('only_list_dev:',len(only_list_dev), sorted(only_list_dev))

关注
打赏
1664196048
查看更多评论
立即登录/注册

微信扫码登录

0.0484s