python - 如何在熊猫数据框中找到非一对一的组合
问题描述
我有以下数据框
bootstrap cluster_main cluster_b distance
1 0 Cluster 0 Cluster 1 0.002016
15 0 Cluster 0 Cluster 3 0.001282
4 0 Cluster 1 Cluster 0 0.000772
10 0 Cluster 2 Cluster 2 0.000990
26 1 Cluster 0 Cluster 2 0.001034
16 1 Cluster 2 Cluster 0 0.000159
31 1 Cluster 3 Cluster 3 0.000889
21 1 Cluster 1 Cluster 1 0.000961
35 2 Cluster 0 Cluster 3 0.099427
36 2 Cluster 1 Cluster 0 0.067036
43 2 Cluster 2 Cluster 3 0.102834
45 2 Cluster 3 Cluster 1 0.069814
我想找到 和之间bootstrap
没有一对一匹配的 s 。cluster_main
cluster_b
在上面的示例中,输出应该是2
and 0
,因为Cluster 3
在cluster_b
for 列中bootstrap 2
,被“匹配”了两次,并且在 for 列中发生了同样Cluster 0
的cluster_main
情况bootstrap 0
解决方案
我相信你需要:
#compared sorted values
#f = lambda x: sorted(x['cluster_main']) == sorted(x['cluster_b'])
#comppred sets
#f = lambda x: set(x['cluster_main']) == set(x['cluster_b'])
m = df.groupby('bootstrap').apply(f)
print (m)
bootstrap
0 False
1 True
2 False
dtype: bool
bootstrap
0 False
1 True
2 False
dtype: bool
out = m.index[~m]
print (out)
Int64Index([0, 2], dtype='int64', name='bootstrap')
编辑:我意识到第一个解决方案与比较集相同,因此被删除。
这里有可能看到区别:
print (df)
bootstrap cluster_main cluster_b distance
1 0 Cluster 0 Cluster 1 0.002016
15 0 Cluster 0 Cluster 1 0.001282
4 0 Cluster 1 Cluster 0 0.000772
10 0 Cluster 2 Cluster 2 0.000990
26 1 Cluster 2 Cluster 0 0.001034
16 1 Cluster 0 Cluster 2 0.000159
31 1 Cluster 3 Cluster 3 0.000889
21 1 Cluster 1 Cluster 1 0.000961
35 2 Cluster 0 Cluster 0 0.099427
36 2 Cluster 2 Cluster 2 0.067036
43 2 Cluster 2 Cluster 3 0.102834
45 2 Cluster 3 Cluster 2 0.069814
#compared sorted values
f = lambda x: sorted(x['cluster_main']) == sorted(x['cluster_b'])
m = df.groupby('bootstrap').apply(f)
print (m)
bootstrap
0 False
1 True
2 True
dtype: bool
f = lambda x: set(x['cluster_main']) == set(x['cluster_b'])
m = df.groupby('bootstrap').apply(f)
print (m)
bootstrap
0 True
1 True
2 True
dtype: bool
推荐阅读
- c++ - 转换矢量
- css - 在 Tailwind 中实现的菜单在断点“早期”更改布局
- python-3.x - 如何使用队列中的所有消息并停止 pika 中的回调函数?
- java - 安装flutter时遇到错误(java类路径)
- vue.js - 如何根据 Vue 中的选定项显示/隐藏组件
- ef-code-first - 从 Linux 促进 Entity Framework Core 代码优先迁移到更高环境 (QA/UAT/PROD) 的最佳实践
- regex - 环顾正则表达式和字符消耗
- swift - 订阅 iOS 电话计划
- php - 在字符串中转义奇怪的斜杠组合
- vba - Microsoft Access VBA - 运行 WScript.Shell.run 时权限被拒绝