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

举报
一个处女座的程序猿 发表于 2022/01/01 22:50:22 2022/01/01
【摘要】 Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 目录 利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果 实现代码 利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果 parallel_match_r...

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

目录

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

输出结果

实现代码


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

输出结果


  
  1. parallel_match_res:
  2. col01 col02
  3. 11 12.0 NaN
  4. 12 13.0 NaN
  5. 13 14.0 NaN
  6. 14 NaN 15.0
  7. 15 NaN 16.0
  8. 16 NaN 17.0
  9. cross_match_res01: [nan, nan, nan, 15.0, 16.0, 17.0]
  10. cross_match_res02: [nan, nan, nan, nan, nan, nan, 15.0, 16.0, 17.0, 12.0, 13.0, 14.0]
  11. only_list_prod: 6 [12.0, 13.0, 14.0, nan, nan, nan]
  12. only_list_dev: 6 [nan, nan, nan, 15.0, 16.0, 17.0]

实现代码

  • (1)、两列平行匹配求差集
  • (2)、两列交叉匹配求差集
    T1、集合交集运算符实现
    T2、for循环判断实现

  
  1. # Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)
  2. import pandas as pd
  3. data_path = 'data/demo_data_find_difference.xls'
  4. df = pd.read_excel(data_path)
  5. # 求差集
  6. # (1)、两列平行匹配求差集
  7. parallel_match_res = df[df["col01"] != df["col02"]]
  8. print('parallel_match_res: \n',parallel_match_res)
  9. # (2)、两列交叉匹配求差集
  10. list_prod = df["col01"].tolist()
  11. list_dev = df["col02"].tolist()
  12. # T1、集合交集运算符实现
  13. cross_match_res01 = list(set(list_dev).difference(set(list_prod)))
  14. cross_match_res02 = list(set(list_prod)^set(list_dev))
  15. print('cross_match_res01:',sorted(cross_match_res01))
  16. print('cross_match_res02:',cross_match_res02)
  17. # T2、for循环判断实现
  18. only_list_prod = [x for x in list_prod if x not in list_dev] #在list1列表中而不在list2列表中
  19. only_list_dev = [y for y in list_dev if y not in list_prod] #在list2列表中而不在list1列表中
  20. print('only_list_prod:',len(only_list_prod), sorted(only_list_prod))
  21. print('only_list_dev:',len(only_list_dev), sorted(only_list_dev))

文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:yunyaniu.blog.csdn.net/article/details/122261357

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。