python-数据操作—找出两列数据中相同和不同的元素

** 这个问题是在我做毕业论文期间,由于需要计算评估指标,要用到两个列表或dataframe中的两列的“你有而我没有”的数据来进行计算,所以参考了这个方法来实现。**
** 希望可以帮助到有需要的朋友解决相应的问题**

1. 列表解决方法

冲,举个例子,上代码:

recall_True = [x for x in range(10)]  # 观看列表
recall_CF = [x for x in range(5,15)]  # 预测列表

测试数据:
recall_True
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

recall_CF
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

找出两列数据中相同和不同的元素

# 在观看列表而不在预测列表
False_rec = [x for x in recall_True if x not in recall_CF] 
 
# 在预测列表而不在观看列表
False_CF = [y for y in recall_CF if y not in recall_True]  

结果展示

False_rec
[0, 1, 2, 3, 4]
False_CF
[10, 11, 12, 13, 14]

2. 集合解决方法

[记于2021/12/22]

2.1 找两列数据不同的元素(差集)

理解完这个问题之后,其实就是要实现两个集合的差集,不是并集\交集;
原方法总的实例:

# 在A列表而不在B列表
InA_NotInB = list(set(A) - set(B))

# 在B列表而不在A列表
InB_NotInA  = list(set(B) - set(A))

结果展示

InA_NotInB 
[0, 1, 2, 3, 4]
InB_NotInA  
[10, 11, 12, 13, 14]

要实现的操作本质就是集合间的差集问题,可以找出A有的,B没有的数据,反之亦成立。

2.2 找两列数据相同的元素(交集)

IntersectionSet = list(set(A) & set(B))
IntersectionSet 
[5, 6, 7, 8, 9]

2.3 找两列数据全部的元素(并集)

unionSet= list(set(A) | set(B))
unionSet
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值